Re: parsing command line arguments multiple times
- From: security.department@xxxxxxxx (John Doe)
- Date: Fri, 29 Apr 2005 10:50:29 +0200
Am Freitag, 29. April 2005 10.19 schrieb lohit:
> On 4/29/05, John Doe <security.department@xxxxxxxx> wrote:
> > Am Freitag, 29. April 2005 09.19 schrieb lohit:
> > > On 4/29/05, lohit <lohit.vijayarenu@xxxxxxxxx> wrote:
> > > > Hi,
> >
> > Hi
> >
> > > > i have a requirement, as in based on one command line option, the
> > > > rest of the arguments change for the same script.
> > > > eg: script could be called in either of the ways
> > > > script1 -option1 -option2 adfas -option3
> > > > script -option1 -option4
> > > > my question is
> > > > 1. how do we get the option1 alone from GetOptions function
> > > > 2. can i call GetOptions multiple times?
> > > > how would you handle such situation
> > > > thanks in advance for the help!!
> > >
> > > ok, i see that only one option could be parse with GetOptions
> >
> > Are there reasons not to use GetOpt::Std or GetOpt::Long?
> > Could you provide some code?
>
> i am fine with any GetOpt as long as it solves my problem. this is the
> problem i have been having.
> script usage is:
> script.pl -checkflag -option1 value1 -option2 value2
> now my problem is i need to check only '-checkflag' flag. rest would be
> parsed in second run.
> now if the first run i parse it something like
> &GetOptions('checkflag' => \$check_flag);
> if ($checkflag)
> {
> do somethign here.....
> }
> but perl throws an error,
> Unknow argument option1
> Unknow argument option2
> how do i get rid of them, or any other solution?
> thanks!
>
> > and for the
> >
> > > next run i could copy back a saved version of @ARGV.
> > > but while i am processin any one options, i get an error message saying
> > > *Unknow option* * *for the other unused options. how do i get rid of
> >
> > this?
Hi lohit
With the modules I mentoned, you can parse all provided options with one sub
call. The handling of the values is separated from that.
Here is a snippet of one of my scripts;
by reading the man pages you can adapt it to your needs:
=== beg ===
use strict;
use warnings;
use Getopt::Long;
# default values for all possible options:
#
my $opt_surveyname='';
my $opt_fbname='';
# slurp all cmdline opts into the corresponding vars:
#
GetOptions (
'surveyname=s'=>\$opt_surveyname,
'fbname=s'=>\$opt_fbname,
);
# Check correct options / combinations / whatever
#
&usage () unless $opt_surveyname and $opt_fbname;
###
### Here your code to process the provided option values
###
sub usage {
print <<EOF;
....
EOF
exit;
}
=== end ===
The script is called
script --surveyname=foo --fbname=bar
joe
> > --
> > To unsubscribe, e-mail: beginners-unsubscribe@xxxxxxxx
> > For additional commands, e-mail: beginners-help@xxxxxxxx
> > <http://learn.perl.org/> <http://learn.perl.org/first-response>
.
- Follow-Ups:
- References:
- parsing command line arguments multiple times
- From: Lohit
- Re: parsing command line arguments multiple times
- From: John Doe
- Re: parsing command line arguments multiple times
- From: Lohit
- parsing command line arguments multiple times
- Prev by Date: Re: parsing command line arguments multiple times
- Next by Date: Re: parsing command line arguments multiple times
- Previous by thread: Re: parsing command line arguments multiple times
- Next by thread: Re: parsing command line arguments multiple times
- Index(es):
Relevant Pages
|