Date: Fri, 28 Apr 2006 03:35:03 +0200 From: Arne Skjaerholt <arnsholt@broadpark.no> To: freebsd-questions@freebsd.org Subject: Re: scripting languages... Message-ID: <1146188104.7085.8.camel@bursar> In-Reply-To: <20060427214854.GA2601@thought.org> References: <20060427024158.GA71123@thought.org> <20060427031043.GA69851@gothmog.pc> <20060427214854.GA2601@thought.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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, Arne :wq
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1146188104.7085.8.camel>