在Windows 7中,使用ActivePerl @ARGV为空

我有以下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运行,会发生什么?

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...