Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: check parameters

by blue_cowdawg (Monsignor)
on Apr 08, 2013 at 14:13 UTC ( #1027513=note: print w/ replies, xml ) Need Help??


in reply to check parameters

Why not just use Getopt::Long? Sample:

#!/usr/bin/perl -w use strict; use Getopt::Long; my $abc = 1; my $bar=1; my $fii=1; my $wee=1; my $result = GetOptions("abc=i" => \$abc, "bar=i" => \$bar, "fii=i" => \$fii, "wee=i" => \$wee ); | etc...
If I remember correctly (can't remember what I had for breakfast and I have the same thing every day) Getopt::Long is part of CORE and therefore you need to load it on your system.


Peter L. Berghold -- Unix Professional
Peter -at- Berghold -dot- Net; AOL IM redcowdawg Yahoo IM: blue_cowdawg


Comment on Re: check parameters
Download Code
Re^2: check parameters
by ag4ve (Monk) on Apr 08, 2013 at 14:22 UTC
    I am using Getopts::Long. This is:
    GetOptions( param|p=s@ => \$opts->{params} );
    What I presented was a test showing where I am failing.
          I am using Getopts::Long. This is:

      Didn't notice that in the code you presented.

      I'm not sure what is failing in your code or why. What were you expecting? Seems to me you could accomplish what you are trying to do with much more readable code.

      If I'm trying to test for the presence of a command line parameter I normally set the variables to something null and test later to see if they've been set. Here's an example:

      | handwaving my $result = GetOptions( 'file=s' => \$infile, 'debug' => \$debug, 'verbose' => \$verbose, 'out=s' => \$outfile ); upchuck_and_die unless ( $file && $outfile ) ; | | stuff | later on sub upchuck_and_die { print "you must specify --infile=<file> and --outfile=<otherfile> +\n"; exit(-1); }
      You could do the same thing with a hashref but I like the readability of using discrete variables instead.

      “Let us redefine progress to mean that just because we can do a thing, it does not necessarily mean we must do that thing.” – Federation President, Star Trek VI


      Peter L. Berghold -- Unix Professional
      Peter -at- Berghold -dot- Net; AOL IM redcowdawg Yahoo IM: blue_cowdawg

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1027513]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (6)
As of 2014-12-21 19:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (107 votes), past polls