in reply to Test for parameters?

@_ gets set to the parameters passed to a function call, not for the command line parameters. For that you use @ARGV:
$ perl -e 'print @_;print "::\n";print @ARGV;' camel :: camel
To get the number of parameters, you use @ARGV in scalar context:
$ perl -e ''print scalar @ARGV;' my camel 2

CU
Robartes-