gpt4 book ai didi

Perl:子程序输出;输入到 foreach 语句

转载 作者:行者123 更新时间:2023-12-01 10:07:11 26 4
gpt4 key购买 nike

我有一个输出 FQDN 列表的子路由,用新行分隔:

x1.server.com
s2.sys.com
5a.fdsf.com

^^ 是这种格式,所以除了{variable text}.{variable text}.{variable text}之外没有其他模式

我的问题是如何才能将此输出作为 foreach 语句的输入,以便我可以遍历每个 FQDN?

最佳答案

注意: 你说子输出一个列表,但我假设你的意思是它输出一个字符串。否则,这个问题没有实际意义。

只是在换行符上拆分输出。假设子例程称为 subname:

for my $fqdn (split /\n/, subname())

正如 Brian Roach 在评论中指出的那样,最佳解决方案是让子例程返回列表而不是字符串。但是,这对您来说可能不是一个可行的解决方案。无论哪种方式,如果您想尝试一下,只需在子例程的适当位置添加 split 即可。例如:

sub foo {
...
#return $string;
return split /\n/, string;
}

如果你想更进一步,你可以使用 wantarray函数,它检测在哪个上下文中调用子例程:

sub foo {
...
return $string unless wantarray;
return split /\n/, string;
}

虽然这很可爱,但除非您知道自己在做什么,否则它可能会导致不良行为。

关于Perl:子程序输出;输入到 foreach 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9217452/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com