X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/f86702ccfcc3646d7aa30b09ce4f4413be9f99d1..4cabf874ee37b27dc1844a78d68b2cacf5caaae8:/lib/FileHandle.pm diff --git a/lib/FileHandle.pm b/lib/FileHandle.pm index 0b5d9ed..6b3636a 100644 --- a/lib/FileHandle.pm +++ b/lib/FileHandle.pm @@ -1,10 +1,10 @@ package FileHandle; -use 5.003_11; +use 5.006; use strict; -use vars qw($VERSION @ISA @EXPORT @EXPORT_OK); +our($VERSION, @ISA, @EXPORT, @EXPORT_OK); -$VERSION = "2.00"; +$VERSION = "2.02"; require IO::File; @ISA = qw(IO::File); @@ -69,7 +69,8 @@ import IO::Handle grep { !defined(&$_) } @EXPORT, @EXPORT_OK; sub import { my $pkg = shift; my $callpkg = caller; - Exporter::export $pkg, $callpkg, @_; + require Exporter; + Exporter::export($pkg, $callpkg, @_); # # If the Fcntl extension is available, @@ -77,7 +78,7 @@ sub import { # eval { require Fcntl; - Exporter::export 'Fcntl', $callpkg; + Exporter::export('Fcntl', $callpkg); }; } @@ -93,6 +94,11 @@ sub pipe { ($r, $w); } +# Rebless standard file handles +bless *STDIN{IO}, "FileHandle" if ref *STDIN{IO} eq "IO::Handle"; +bless *STDOUT{IO}, "FileHandle" if ref *STDOUT{IO} eq "IO::Handle"; +bless *STDERR{IO}, "FileHandle" if ref *STDERR{IO} eq "IO::Handle"; + 1; __END__ @@ -105,25 +111,25 @@ FileHandle - supply object methods for filehandles use FileHandle; - $fh = new FileHandle; - if ($fh->open "< file") { + $fh = FileHandle->new; + if ($fh->open("< file")) { print <$fh>; $fh->close; } - $fh = new FileHandle "> FOO"; + $fh = FileHandle->new("> FOO"); if (defined $fh) { print $fh "bar\n"; $fh->close; } - $fh = new FileHandle "file", "r"; + $fh = FileHandle->new("file", "r"); if (defined $fh) { print <$fh>; undef $fh; # automatically closes the file } - $fh = new FileHandle "file", O_WRONLY|O_APPEND; + $fh = FileHandle->new("file", O_WRONLY|O_APPEND); if (defined $fh) { print $fh "corge\n"; undef $fh; # automatically closes the file @@ -219,7 +225,7 @@ supported C methods: Furthermore, for doing normal I/O you might need these: -=over +=over 4 =item $fh->print @@ -232,17 +238,21 @@ See L. =item $fh->getline This works like <$fh> described in L -except that it's more readable and can be safely called in an -array context but still returns just one line. +except that it's more readable and can be safely called in a +list context but still returns just one line. =item $fh->getlines -This works like <$fh> when called in an array context to +This works like <$fh> when called in a list context to read all the remaining lines in a file, except that it's more readable. It will also croak() if accidentally called in a scalar context. =back +There are many other functions available since FileHandle is descended +from IO::File, IO::Seekable, and IO::Handle. Please see those +respective pages for documentation on more functions. + =head1 SEE ALSO The B extension,