in reply to Re^3: Last Line Read? (Any way to use IO::Handle methods on a "First-Class" Filehandle?)
in thread Last Line Read? (Any way to use IO::Handle methods on a "First-Class" Filehandle?)

OK, how about this?
$ cat /tmp/io.pl #!/usr/bin/perl use strict; use warnings; use IO::Handle; my $filename = shift || $0; my $fh = IO::Handle->new; open $fh, $filename or die "failed on $filename: $!\n"; print((\$fh)->input_line_number, "\n") while <$fh>; #1 #print $fh->input_line_number, "\n" while <$fh>; #2 $ perl /tmp/io.pl Can't call method "input_line_number" on unblessed reference at /tmp/i +o.pl line 10, <GEN0> line 1.
The #2 prints the line numbers correctly. Did I miss something? Please shed some light.

Open source softwares? Share and enjoy. Make profit from them if you can. Yet, share and enjoy!

  • Comment on Re^4: Last Line Read? (Any way to use IO::Handle methods on a "First-Class" Filehandle?)
  • Download Code

Replies are listed 'Best First'.
Re^5: Last Line Read? (Any way to use IO::Handle methods on a "First-Class" Filehandle?)
by ysth (Canon) on Jun 08, 2007 at 09:11 UTC
    Did I miss something?
    Just that I was trying to answer the parenthetical question in the title.
    $ perl - foo use strict; use warnings; use IO::Handle; my $filename = shift || $0; my $fh = do {local *FH}; open $fh, $filename or die "failed on $filename: $!\n"; print((\$fh)->input_line_number, "\n") while <$fh>; #1 #print $fh->input_line_number, "\n" while <$fh>; #2 __END__ Name "main::FH" used only once: possible typo at - line 6. 1 2 3 4 5 6 7 8 9 10