http://www.perlmonks.org?node_id=980592


in reply to calling a subroutine from another subroutine

As a minor point: this
my $usage = " Usage: $scriptname (-type<type> -OIMID <oimid> -version <version_numbe +r> -out <filename> ) -type <type> :A|B -version <version_number> :Required.Minimum Security Versio +n Number. -OEMID <oemid> : Required. -out <filename> : Required. ";
could be a heredoc, which would make it easier to lay it out nicely:
my $usage = <<USAGE; Usage: $0 -type[A|B] -OEMID id -version nnnn -out filename where version: minimum security version (integer) OEMID: one of the OEM IDs fron (source here...) out: name of any writable file USAGE
I altered the usage to conform to the more-often used standards from man pages, but you can use whatever makes sense to your users. The point is that it was easy for me to line things up because I'm writing it down exactly the way it will appear when it's printed.

You might also consider just printing to STDOUT instead of forcing an output file; that way your script could, for instance, pipe into grep or sort.

Replies are listed 'Best First'.
Re^2: calling a subroutine from another subroutine
by toolic (Bishop) on Jul 08, 2012 at 19:26 UTC
    Usage: $ARGV[0] -type[A|B] -OEMID id -version nnnn -out filename
    I think you meant to use $0 instead of @ARGV:
    $ARGV[0] is the first argument, not the program's command name itself. See $0 for the command name.
      You're right, and I've made the edit in the code. Thanks!