Perl
1.命令行参数传递 
*Perl
**@ARGV $_ARGV[0] $#ARGV为参数的个数-1 ($#array 只适用于@array不适用%hash)

*Shell
$1 $2 参数个数$#(不用减1,是否可以用来判断是否有命令行参数?)

2.函数参数传递
*Perl
**@_ 传递了所有的函数参数。如果是对象中的方法。$_[0] 是类的名字。一般用shift去除后取得方法参数.

*Shell
**$1 $2 参数个数$#.(个人感觉shell中函数和命令的处理都是一样的。比如调用函数的时候 不需要括号。参数的传递和命令行一样。
**(另外shell中的函数如果有关键字function开头 就不需要(),如果没有function开头则需要(),比如function test{} 等于 test(){})