该列表与普通C程序中的argv列表类似,定义了应用程序(数组第一个元素)和参数列表。
外层foreach循环迭代@ARGV数组中的所有命令行参数,查找触发器消息。
该循环在数组ARGV上迭代,它是在命令行传递给脚本的余下的参数集合。
在我看来,最简单的解决方案是手工解析@ARGV,如下所示。
特别是,argv是程序的参数数组,第一个参数是程序本身。
在内部,Perl(类似于C)将参数传递给它用@ARGV数组解释的脚本。
i开关的神奇之处在于它对@ARGV中的每个文件都用该脚本对该文件输出所产生的文件版本进行替代。
当脚本运行在命令行方式时,argv变量传递给程序C语言样式的命令行参数。
清单2中的代码首先在$argv数组中查找一个传递进来的参数。
为了简单起见,这个脚本只处理第一个额外参数argv[1]。
对命令行(@ARGV中)上给出的每一个文件,我得到ID3标签,如果需要则创建它。
BusyBox然后可以通过argv[0]来调用内部工具。
在这个示例中,使用range以索引sys.argv列表。
其他则是纯粹的风格惯例(args而非argv;i++而非++i)。
变量CMD的值设置为“cat”+sys.argv[2]。
脚本6.pl可以识别@ARGV中的UTF-8数据(6_out.txt显示了一个运行6.pl的样例输出)。
第一个argv元素(0)是程序名(即echo.py)。