3

私はPerlが初めてです。私は次のような文字列を持っています

my $http_origin_servers_list = "abc:2220,cde:40111,efg:45643";

そして、私はlikeと呼ばれるサブを持っています

executeCommand($host);

$http_origin_servers_list配列に変換したい

my @values = ("abc:2220", "cde:40111", "efg:45643");

executeCommandそして、次のように各値を順番に呼び出します

executeCommand("abc:2220");
4

3 に答える 3

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;
于 2013-03-15T08:53:48.747 に答える
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
于 2013-03-15T08:51:23.013 に答える
1

サーバーリストを制御できる場合は、リストを直接作成できます。

my @servers = qw/abc:1 def:2 ghi:3/;
for my $server (@servers) {
    say $server;
}
于 2013-03-15T08:51:42.080 に答える