我有以下Perl脚本.我正在使用ActivePerl在
Windows 7中运行它:
#!c:\Perl64\bin\perl.exe -w use strict; my $mp3splt_exe = 'c:\Program Files (x86)\mp3splt\mp3splt.exe'; my $mp3splt_args = '-o "@n @f" -g "r%[@o @N]" -f -t 6.0'; print @ARGV; my $filename = $ARGV[0]; print "$mp3splt_exe $mp3splt_args $filename\n";
(你可以看到,我正在为mp3splt创建一个包装:-))
当我这样运行它:
C:\Program Files (x86)\mp3splt>run_mp3splt.pl a
我得到这个:
Use of uninitialized value $filename in concatenation (.) or string at C:\Program Files (x86)\mp3splt\run_mp3splt.pl line 12. c:\Program Files (x86)\mp3splt\mp3splt.exe -o "@n @f" -g "r%[@o @N]" -f -t 6.0
所以,首先,当我打印@ARGV时,没有打印出来,其次,当我分配$filename = $ARGV [0]时,$filename是undef,所以我得到警告.
那么我做错了什么?为什么没有将命令行参数传递给脚本?
我确定Windows 7不了解shebang行.如果使用perl run_mp3splt.pl a运行,会发生什么?