array的变量引用问题

array的变量引用问题



[Copy to clipboard] [ - ]
CODE:
#!/usr/bin/perl
my $base="/etc";
my @server_dirs=qw($base/cgibin $base/config $base/images $base/misc $base/wanboot);
foreach $server_dir (@server_dirs){
if (! -d $server_dir ) {
print "$server_dir" . "\n";
                        }
}

现在的输出结果是:

[Copy to clipboard] [ - ]
CODE:
$base/cgibin
$base/config
$base/images
$base/misc
$base/wanboot

我想要的结果是:

[Copy to clipboard] [ - ]
CODE:
/etc/cgibin
/etc/config
/etc/images
/etc/misc
/etc/wanboot

先谢谢!!
把 qw 换成 qq
qw() 不会做变量替换。


QUOTE:
原帖由 hitsubunnu 于 2008-12-15 17:23 发表
把 qw 换成 qq

谢谢你,哥们,就是这个问题!!
qq  也不对,这样就成了一个字符串,而不是数组了。


QUOTE:
原帖由 longbow0 于 2008-12-15 17:24 发表
qw() 不会做变量替换。

一阵见血,谢谢,谢谢!

这样的东西,我总是想尝试查阅文档先,可惜不知道怎样能够快速地找到答案
http://perldoc.perl.org/perlop.h ... uote-like-Operators

看起来好像没法,只有自己逐个定义。比如

[Copy to clipboard] [ - ]
CODE:
#!/usr/bin/perl
my $base="/etc/";
my @sdirs=qw(cgibin config images misc wanboot);

for $sdir (@sdirs) {
    push @server_dirs, $base . $sdir;
}

foreach $server_dir (@server_dirs){
    if (! -d $server_dir ) {
        print "$server_dir" . "\n";
    }
}



QUOTE:
原帖由 nimysun 于 2008-12-15 17:29 发表


一阵见血,谢谢,谢谢!

这样的东西,我总是想尝试查阅文档先,可惜不知道怎样能够快速地找到答案

qw//, qq// 这些的描述在 perlop 的 Regexp Quote-like Operators 中


QUOTE:
原帖由 longbow0 于 2008-12-15 17:32 发表
http://perldoc.perl.org/perlop.h ... uote-like-Operators

看起来好像没法,只有自己逐个定义。比如


#!/usr/bin/perl
my $base="/etc/";
my @sdirs=qw(cgibin config images misc wanboo ...

用 glob 撒,或者把你要遍历的目录名放在一个数组中,然后做个 map
如果$base在后面重新赋值了怎么办?比如我加了$base="/home";
我希望$base这个值能够改变,应该要怎么做?

#!/usr/bin/perl
my $base="/etc";
my @server_dirs=qw($base/cgibin $base/config $base/images $base/misc $base/wanboot);
$base="/home";
foreach $server_dir (@server_dirs){
if (! -d $server_dir ) {
print "$server_dir" . "\n";
                        }
}