in reply to Re^3: a simple exercise in readability
in thread a simple exercise in readability

Thanks for the compliments on my help message text. I do try to be clear.

You may have a point, re: your replacement code, with the exception that eliminating the subroutine definition for HELP_MESSAGE() would cause the script to fail to produce the contents of $help when invoked with the --help option. Thus, my two explicit conditional invocations of HELP_MESSAGE() should probably be replaced as you indicated, though I'd keep the subroutine. New code:

die $help unless $ARGV[1]; map { /^-?\d+$/ or die "Invalid input $_\n" } @ARGV; # . . . and later . . . sub HELP_MESSAGE { print $help; }

If I don't keep that subroutine in there, the --help option causes the following output to be produced:

/home/ren/bin/ies version 1.0 calling Getopt::Std::getopts (version 1. +05), running under Perl version 5.8.8. Usage: series [-OPTIONS [-MORE_OPTIONS]] [--] [PROGRAM_ARG1 ...] The following single-character options are accepted: Boolean (without arguments): -s Options may be merged together. -- stops processing of options.

edit: johngg pointed out the "unless" bug above, where unless @ARGV should read unless defined @ARGV instead.

print substr("Just another Perl hacker", 0, -2);
- apotheon
CopyWrite Chad Perrin

Replies are listed 'Best First'.
Re^5: a simple exercise in readability
by johngg (Canon) on Jan 15, 2007 at 16:57 UTC
    My eyes could be playing me tricks again but I think your

    die $help unless $ARGV[1];

    and it's previous incarnations will die erroneously if the user wants to sum from, say, -7 to 0. Perhaps unless defined $ARGV[1]; would be better?

    Cheers,

    JohnGG

      Good catch. Thanks -- I've edited the code on my system at home, though I'll leave the error as it is where you noticed it here at PerlMonks.

      print substr("Just another Perl hacker", 0, -2);
      - apotheon
      CopyWrite Chad Perrin