in reply to Best way to handle readline errors?
Infact, undefining $! has no effect and perlvar does say "the value of $! is meaningful only immediately after a failure". Like $^E, its useful for one thing only - describing the error that occured. Programming around it would definitely be considered "bad practice".$ perl -le 'print $c++ for 0..0xFFFF' > test; ls -l test -rwxr-xr-x 1 user user 382106 2006-11-14 15:04 test $ perl -e 'open F, "test"; print "$! => $_" while <F>' Bad file descriptor => 0 Bad file descriptor => 1 Bad file descriptor => 2 ...
#!/usr/bin/perl -Wl use strict; use warnings; $|++; open F, "<", $ARGV[0]; while (1) { last if eof(F); if (defined chomp( local $_ = readline (F) )) { print } else { warn "hmerrm, readline failed : $!"; last; } } # or while (1) { last if eof(F); chomp( local $_ = eval "readline (F)" ); unless ($@) { print; } else { warn "whoops, readline failed : $@"; last; } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Best way to handle readline errors?
by jrw (Monk) on Nov 15, 2006 at 13:32 UTC | |
by Firefly258 (Beadle) on Nov 18, 2006 at 13:50 UTC | |
by jrw (Monk) on Nov 20, 2006 at 20:09 UTC | |
by Firefly258 (Beadle) on Nov 22, 2006 at 12:17 UTC | |
by jrw (Monk) on Nov 28, 2006 at 01:38 UTC | |
|