On 2006-04-27 16:58, Gary Kline <[EMAIL PROTECTED]> wrote: > > Getting at argv/argc is actually pretty simple in Perl. The global array > > @ARGV contains the arguments given on the command-line, but not the name > > of the file (this datum is contained in $0). Therefore your argv[1] in C > > is $ARGV[0] in Perl. The number of command-line arguments can be > > obtained in two ways, either you interpret the array in a scalar context > > and get its length: ``my $argc = scalar @ARGV'' or you use the last > > index of the array and add one: ``my $argc = $#ARGV + 1''. Of course, in > > most cases you'll just want to loop over the command-line args, so a > > foreach loop should suffice, or of course one of the Getopt (Getopt::Std > > or Getopt::Long in most cases) modules. > > So, could I say: > > my $argc = $#ARGV+1; $count = 0; > while ($argc--) > { > if (! (checkErr($ARGV[$count], $count))) > { > printf("Processing %s\n", $ARGV[$count]); > doWhatever($ARGV[$count]); > } > $count++; > } > > or something close-to!?
I believe the idiomatic way of doing this would be something more like: foreach $arg (@ARGV) { if (!checkErr($arg)) { printf("Processing %s\n", $arg); doWhatever($arg); } } Your version may work too, but I'm always wary of all the index trickery involved in handling $#ARGV fearing it may easily lead to off-by-one bugs. So I prefer foreach() loops :) _______________________________________________ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"