?? file.pm
字號:
#package IO::File;=head1 NAMEIO::File - supply object methods for filehandles=head1 SYNOPSIS use IO::File; $fh = new IO::File; if ($fh->open("< file")) { print <$fh>; $fh->close; } $fh = new IO::File "> file"; if (defined $fh) { print $fh "bar\n"; $fh->close; } $fh = new IO::File "file", "r"; if (defined $fh) { print <$fh>; undef $fh; # automatically closes the file } $fh = new IO::File "file", O_WRONLY|O_APPEND; if (defined $fh) { print $fh "corge\n"; $pos = $fh->getpos; $fh->setpos($pos); undef $fh; # automatically closes the file } autoflush STDOUT 1;=head1 DESCRIPTIONC<IO::File> inherits from C<IO::Handle> and C<IO::Seekable>. It extendsthese classes with methods that are specific to file handles.=head1 CONSTRUCTOR=over 4=item new ( FILENAME [,MODE [,PERMS]] )Creates a C<IO::File>. If it receives any parameters, they are passed tothe method C<open>; if the open fails, the object is destroyed. Otherwise,it is returned to the caller.=item new_tmpfileCreates an C<IO::File> opened for read/write on a newly created temporaryfile. On systems where this is possible, the temporary file is anonymous(i.e. it is unlinked after creation, but held open). If the temporaryfile cannot be created or opened, the C<IO::File> object is destroyed.Otherwise, it is returned to the caller.=back=head1 METHODS=over 4=item open( FILENAME [,MODE [,PERMS]] )C<open> accepts one, two or three parameters. With one parameter,it is just a front end for the built-in C<open> function. With two or threeparameters, the first parameter is a filename that may includewhitespace or other special characters, and the second parameter isthe open mode, optionally followed by a file permission value.If C<IO::File::open> receives a Perl mode string ("E<gt>", "+E<lt>", etc.)or a ANSI C fopen() mode string ("w", "r+", etc.), it uses the basicPerl C<open> operator (but protects any special characters).If C<IO::File::open> is given a numeric mode, it passes that modeand the optional permissions value to the Perl C<sysopen> operator.The permissions default to 0666.For convenience, C<IO::File> exports the O_XXX constants from theFcntl module, if this module is available.=back=head1 SEE ALSOL<perlfunc>, L<perlop/"I/O Operators">,L<IO::Handle>L<IO::Seekable>=head1 HISTORYDerived from FileHandle.pm by Graham Barr E<lt>F<gbarr@pobox.com>E<gt>.=cutrequire 5.005_64;use strict;our($VERSION, @EXPORT, @EXPORT_OK, @ISA);use Carp;use Symbol;use SelectSaver;use IO::Seekable;use File::Spec;require Exporter;@ISA = qw(IO::Handle IO::Seekable Exporter);$VERSION = "1.08";@EXPORT = @IO::Seekable::EXPORT;eval { # Make all Fcntl O_XXX constants available for importing require Fcntl; my @O = grep /^O_/, @Fcntl::EXPORT; Fcntl->import(@O); # first we import what we want to export push(@EXPORT, @O);};################################################## Constructor##sub new { my $type = shift; my $class = ref($type) || $type || "IO::File"; @_ >= 0 && @_ <= 3 or croak "usage: new $class [FILENAME [,MODE [,PERMS]]]"; my $fh = $class->SUPER::new(); if (@_) { $fh->open(@_) or return undef; } $fh;}################################################## Open##sub open { @_ >= 2 && @_ <= 4 or croak 'usage: $fh->open(FILENAME [,MODE [,PERMS]])'; my ($fh, $file) = @_; if (@_ > 2) { my ($mode, $perms) = @_[2, 3]; if ($mode =~ /^\d+$/) { defined $perms or $perms = 0666; return sysopen($fh, $file, $mode, $perms); } if (! File::Spec->file_name_is_absolute($file)) { $file = File::Spec->catfile(File::Spec->curdir(),$file); } $file = IO::Handle::_open_mode_string($mode) . " $file\0"; } open($fh, $file);}1;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -