$ 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/io.pl line 10, line 1.