我是Perl的新手。我有像
这样的字符串my $http_origin_servers_list = "abc:2220,cde:40111,efg:45643";
我有一个叫做
的子executeCommand($host);
我想将$http_origin_servers_list
转换为数组
my @values = ("abc:2220", "cde:40111", "efg:45643");
并依次为每个值调用executeCommand
executeCommand("abc:2220");
答案 0 :(得分:5)
从技术上讲,你要求
my @hosts = split /,/, $http_origin_servers_list;
for my $host (@hosts) {
executeCommand($host);
}
但您可以跳过创建数组。
for my $host (split /,/, $http_origin_servers_list) {
executeCommand($host);
}
如果您愿意,可以更简洁地写出来。
executeCommand($_) for split /,/, $http_origin_servers_list;
答案 1 :(得分:1)
my $http_origin_servers_list = "abc:2220,cde:40111,efg:45643";
my @v = split (/,/, $http_origin_servers_list);
print ("$_\n") for @v; # or executeCommand($_) for @v
答案 2 :(得分:1)
如果您可以控制服务器列表,则可以直接创建列表:
my @servers = qw/abc:1 def:2 ghi:3/;
for my $server (@servers) {
say $server;
}