Am Freitag, 29. April 2005 11.22 schrieb lohit: > On 4/29/05, John Doe <[EMAIL PROTECTED]> wrote: > > 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 > > thanks joe, > lets assume we add an option -checkflag to your script > script -checkflag --surveyname=foo --fbname=bar
Would be "--checkflag" with long options. > now if i specify -checkflag , we have to parse surveryname and fbname No, we don't have to, but it makes sense to do it. > lets assume i do not pass checkflag , then i would like to invoke script > soemthing like this > script --surveyname==foo --username=foobar > so, checkflag is kind of check for different *sets* of arguments. > so i need to parse arguments multiple times.. Not sure if I understand (maybee it's my bad english). Do you want that, depending from the presence/absence of a flag/option, different options or combinations thereof are required? If so, this can be handled by checking the options (option combinations) after having parsed all options provided by the user. Generally, I think there are no problems with parsing what's passed in the cmdline and then check these options against any requirements in the script. When you read the manpage for GetOpt::Long: What doesn't satisfy your requirements? joe > how would you go about in this situation > thanks for the help! > > 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> -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>