#!/usr/bin/perl #testargscan.pl - a script for testing use warnings; sub argscan{ if ($#ARGV == 1) {return (0)} else { my @subarg = (qw($_[0] $_[1] $_[2])); my $argcount = 0; my $found; my $notfound; my @whenfound; while ($argcount <= $#ARGV) { if ($subarg[0] = undef) { $argcount = $#ARGV; return $argcount } if ($ARGV[$argcount] == $subarg[0]){ $found++; $whenfound[$argcount] = 1; } else { $notfound++; $whenfound[$argcount] = 0; #goto (proper) } unless ($argcount == $#ARGV) { $argcount++ } } } if ($subarg[1] eq 'foundcount') { unless ($found == undef) { return $found} else {return 0} } elsif ($subarg[1] eq 'argcount'){ unless ($argcount == undef) { return $argcount} else {return 0} } elsif ($subarg[1] eq 'notfoundcount') { unless ($notfound == undef) { return $notfound} else {return 0} } elsif ($subarg[1] eq 'hunt') { unless ($found == undef) { return $whenfound[$subarg[2]]} else {return 0} } else {return 0}; } $argnumber = argscan(undef); $carnumber = argscan(qw (car foundcount)); $notcarnumber = argscan(qw(car notfoundcount)); $bunnynumber = argscan(qw(bunny foundcount)); print "there are $argnumber arguments \n there are $carnumber cars there are $bunnynumber bunnies $notcarnumber args are not cars \n ";