|
|
| Pathologically Eclectic Rubbish Lister | |
| PerlMonks |
Re: My first perl script is working, what did I do wrong?by eyepopslikeamosquito (Canon) |
| on Nov 09, 2012 at 07:13 UTC ( #1003075=note: print w/ replies, xml ) | Need Help?? |
|
Some suggestions below on how to improve the early part of your script. 1) Replace: with: When a script encounters an error it should exit with a non-zero value (a bald exit returns a zero exit value), a usage statement is conventional, and or die is idiomatic. BTW, you should rarely need to use the cumbersome $#array notation. Using it here is unnecessary and the code is clearer using @ARGV instead. Another example, from Perl Best Practices, chapter 5, "Use negative indices when counting from the end of an array" is to prefer $frames[-2] to $frames[$#frames-1] because it is easier on the eye and avoids the undesirable repetition of the variable name (DRY). 2) Replace: with: Using shift makes maintenance easier if you later add or remove command line arguments because you don't need to manually shuffle the ARGV indices (which are "magic numbers"). 3) Replace: with: Using -f is more precise than -e because the first argument must be a file (not a directory, say). Using or die is idiomatic and more concise. 4) Replace: with: As for why the three-argument form of open is preferred, the old two-argument form of open is subject to various security exploits as described at Opening files securely in Perl.
In Section
Seekers of Perl Wisdom
|
|
||||||||||||||||||||