求解

求解

#!/usr/bin/perl
use strict;
# Globals
my @hosts=("xyz","XYZ");
my $host=undef;
my $command=('ssh username\\@$host  \'mkdir  -p /home/username/abc\'');
# main
foreach $host (@hosts)
{
   system "$command";
}
执行的时候出现
ssh: : Name or service not known
好像是my $command=('ssh username\\@$host  \'mkdir  -p /home/username/abc\'');
中的$hosts  没有被替换?

在my $command=('ssh username\\@$host  \'mkdir  -p /home/username/abc\'');中应该如何写才能使$hosts 被替换?
Thank you!

双引号
cobrawgl .我重新修改过了,你帮我再看一下,谢了。
my $command=(qq{ssh username\\@$hosts  \'mkdir  -p /home/username/abc\'})

这样可以么?
还是不行。
my @hosts=("xyz","XYZ");

foreach my $host (@hosts)
{
   print qq{ssh username\@$host  \'mkdir  -p /home/username/abc\'}, "\n";
}

这样可以
$host 放在 for 之前的话,编译的时候就取值了,但那时候 $host 还没值呢。。。

再就是, 1个 \ 就可以了
这样是可以的。我想把很多像ssh这样的命令全部一起放到外面去,主程序要用到的时候去调用一下就可以了。


QUOTE:
原帖由 adminsinx 于 2008-12-12 13:52 发表
这样是可以的。我想把很多像ssh这样的命令全部一起放到外面去,主程序要用到的时候去调用一下就可以了。

没看明白你的想法

不过,我想起了 AUTOLOAD
AUTOLOAD 是什么东东?