我有以下 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
因此,首先,当 I 时print @ARGV
,什么都没有打印,其次,当我分配时$filename = $ARGV[0]
,$filename
is undef
,所以我收到警告。
所以......我做错了什么?为什么没有将命令行参数传递给脚本?