Perl:子程序输出;输入foreach声明
发布时间:2020-12-16 06:06:41 所属栏目:大数据 来源:网络整理
导读:我有一个子路由,输出一个FQDN列表,由新行分隔: x1.server.coms2.sys.com5a.fdsf.com ^^它采用这种格式,因此除{variable text}之外没有其他模式.{variable text}.{variable text} 我的问题是我如何能够将此输出作为foreach语句的输入,以便我可以遍历每个FQDN
我有一个子路由,输出一个FQDN列表,由新行分隔:
x1.server.com s2.sys.com 5a.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; } 如果想要高级,可以使用 sub foo { ... return $string unless wantarray; return split /n/,string; } 虽然这很可爱,但除非你知道自己在做什么,否则会导致不必要的行为. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |