tlhackque has asked for the wisdom of the Perl Monks concerning the following question:
perl -e'while(<>){1;}continue{print "$ARGV\n" if eof;}; print $!' fi +le1 file2 file3 file1 Can't open file2: No such file or directory at -e line 1, <> line 222. file3 Bad file descriptor
Note that file 2 doesn't exist, and Perl generates an error message. So the user knows, probably.
However, after the loop, there doesn't seem to be a way for the program to detect that a file wasn't processed. In real life, that could be awkward. Am I missing something?
I suppose that in a continue block, I could push $ARGV onto an array using eof and compare the result to @ARGV after the loop. But that seems awkward and ugly.
Saner alternatives (other than forgoing magic)?
This communication may not represent my employer's views, if any, on the matters discussed.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Diamond errors
by choroba (Cardinal) on Jan 21, 2023 at 16:52 UTC | |
|
Re: Diamond errors
by hippo (Archbishop) on Jan 21, 2023 at 17:48 UTC | |
|
Re: Diamond errors
by haukex (Archbishop) on Jan 21, 2023 at 17:40 UTC | |
|
Re: Diamond errors
by LanX (Saint) on Jan 21, 2023 at 18:42 UTC | |
|
Re: Diamond errors
by jwkrahn (Abbot) on Jan 21, 2023 at 21:52 UTC | |
|
Re: Diamond errors
by LanX (Saint) on Jan 21, 2023 at 22:18 UTC | |
|
Re: Diamond errors
by jwkrahn (Abbot) on Jan 21, 2023 at 21:59 UTC | |
|
Re: Diamond errors
by LanX (Saint) on Jan 21, 2023 at 16:53 UTC |