我无法理解Windows中perl的命令参数引用。使用以下程序:Perl命令行:目录参数的单引号和双引号
use strict;
use warnings;
use File::Find;
use File::Copy;
my $dir = shift;
die 'Usage: perl Folderize.pl <directory>' unless $dir;
die "$dir doesn't exist" unless -d $dir;
我得到不同的结果,具体取决于是否对目录使用单引号或双引号。如果我用'perl script.pl 'H:\Test!'
打电话,它会打印出''H:\ Test!'不存在“。但是,如果我使用'perl script.pl "H:\Test!"
来调用它,它工作得很好。这是为什么发生?
如果你dbl引用你在perl代码中使用$ dir会怎么样?祝你好运。 – shellter 2011-05-27 19:44:50
'-d“$ dir”'如果在命令行中使用了单引号,则仍会失败。在这种情况下,不使用引号也是可行的,但只是因为路径没有空格。 – 2011-05-27 19:51:29
你确定它说'H:\ Test!'不存在吗?而不是'H:\ Test'? – Quentin 2011-05-27 20:05:42