Perl:子程序输出;输入foreach声明

Perl:子程序输出;输入foreach声明,第1张

概述我有一个子路由,输出一个FQDN列表,由新行分隔: x1.server.coms2.sys.com5a.fdsf.com ^^它采用这种格式,因此除{variable text}之外没有其他模式.{variable text}.{variable text} 我的问题是我如何能够将此输出作为foreach语句的输入,以便我可以遍历每个FQDN? 注意:你说子输出一个列表,但我假设你的意思是它输 我有一个子路由,输出一个FQDN列表,由新行分隔:

x1.server.coms2.sys.com5a.fdsf.com

^^它采用这种格式,因此除{variable text}之外没有其他模式.{variable text}.{variable text}

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

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

只需在换行符上拆分输出即可.假设子例程被称为子名称:

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

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

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

如果想要高级,可以使用wantarray函数,该函数检测调用子例程的上下文:

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

虽然这很可爱,但除非你知道自己在做什么,否则会导致不必要的行为.

总结

以上是内存溢出为你收集整理的Perl:子程序输出;输入foreach声明全部内容,希望文章能够帮你解决Perl:子程序输出;输入foreach声明所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1213213.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存