拆分字符串并在for循环中执行sub

chi*_*iru 2 perl

我是Perl的新手.我有类似的字符串

my $http_origin_servers_list = "abc:2220,cde:40111,efg:45643";
Run Code Online (Sandbox Code Playgroud)

我有一个叫做喜欢的子

executeCommand($host);
Run Code Online (Sandbox Code Playgroud)

我想转换$http_origin_servers_list成数组

my @values = ("abc:2220", "cde:40111", "efg:45643");
Run Code Online (Sandbox Code Playgroud)

executeCommand依次调用每个值

executeCommand("abc:2220");
Run Code Online (Sandbox Code Playgroud)

ike*_*ami 5

从技术上讲,你要求

my @hosts = split /,/, $http_origin_servers_list;
for my $host (@hosts) {
    executeCommand($host);
}
Run Code Online (Sandbox Code Playgroud)

但是你可以跳过创建数组.

for my $host (split /,/, $http_origin_servers_list) {
    executeCommand($host);
}
Run Code Online (Sandbox Code Playgroud)

如果您愿意,可以更简洁地写出来.

executeCommand($_) for split /,/, $http_origin_servers_list;
Run Code Online (Sandbox Code Playgroud)