@ARGV пуст при использовании ActivePerl в Windows 7

У меня есть следующий сценарий 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 , поэтому я получаю предупреждение

Итак ... что я делаю не так? Почему параметр командной строки не передается в сценарий?

9
задан Nathan Fellman 20 November 2010 в 19:36
поделиться