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

前端之家收集整理的这篇文章主要介绍了在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运行,会发生什么?

猜你在找的Windows相关文章