in reply to Re: Processing arguments with Getopt::Long
in thread Processing arguments with Getopt::Long
Thank you Eliya. That makes perfect sense. I was overlooking the obvious (PERL newbie)
I have another quick question: Do you know the best way to make an option dependent on another? For example, in the code given above, I also add an option t that also requires a value, but the program will exit with an error if option t exists but not option c
use strict; use Getopt::Long; my $result = GetOptions ( "c=s" => \&COMP1, "t=s" => \&COMP2, # COMP2 will not be called if option c is +null? '<>' => sub {print "\nThat is not a valid parameter\n";}, ); sub COMP1 {print "\nOption -$_[0] is value=$_[1]\n";} sub COMP2 {print "\nOption -$_[0] is value=$_[1]\n";}
One thought is to load a variable and process them later, like this:
use strict; use Getopt::Long; my $COMP1 = 0; my $COMP2 = 0; my $result = GetOptions ( "c=s" => \$COMP1, "t=s" => \$COMP2, '<>' => sub {print "\nThat is not a valid parameter\n";}, ); if (!$COMP1) { if ($COMP2) { print "\nOption t won't run without option C"; } }
But I imagine there is a better way using GetOptions(). Ideas? Thank you.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Processing arguments with Getopt::Long
by Eliya (Vicar) on Feb 18, 2011 at 17:17 UTC | |
by MKJ747 (Acolyte) on Feb 18, 2011 at 17:25 UTC | |
by ikegami (Patriarch) on Feb 18, 2011 at 20:36 UTC | |
by Eliya (Vicar) on Feb 18, 2011 at 20:52 UTC | |
by ikegami (Patriarch) on Feb 18, 2011 at 20:54 UTC | |
|
Re^3: Processing arguments with Getopt::Long
by ikegami (Patriarch) on Feb 18, 2011 at 16:31 UTC | |
by MKJ747 (Acolyte) on Feb 18, 2011 at 17:02 UTC | |
|
Re^3: Processing arguments with Getopt::Long
by ig (Vicar) on Feb 21, 2011 at 19:25 UTC | |
by MKJ747 (Acolyte) on Feb 22, 2011 at 14:46 UTC |