У меня есть следующий сценарий Perl. Я пытаюсь запустить его в Windows 7 с помощью ActivePerl:
#!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: \ Программные файлы (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
, поэтому я получаю предупреждение
Итак ... что я делаю не так? Почему параметр командной строки не передается в сценарий?