scripting languages...

Arne Skjaerholt arnsholt at
Thu Apr 27 22:18:25 UTC 2006

On Thu, 2006-04-27 at 14:48 -0700, Gary Kline wrote:
> 	I like the C  "main(int argc, char *argv[])" intro or
> 	starting-point.  main() has to be there in C. Given argc
> 	and argv, I can hack away freely.  /bin/sh, /bin/csh, 
> 	and perl's lack if arg[cv] means that I have to think about 
> 	how-to grab the arguments to a binary. Script ot ./a.out.
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.

Your neighbourhood Perl afficionado,

More information about the freebsd-questions mailing list