Am Freitag, 29. April 2005 10.19 schrieb lohit:
> On 4/29/05, John Doe <[EMAIL PROTECTED]> wrote:
> > Am Freitag, 29. April 2005 09.19 schrieb lohit:
> > > On 4/29/05, lohit <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > <http://learn.perl.org/> <http://learn.perl.org/first-response>

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to