【发布时间】:2015-05-20 23:41:06
【问题描述】:
我在 Perl 中有一个小问题。基本上,我会这样做:
sub myFunction
{
return (&myOtherFnA(),&myOtherFnB(),&myOtherFnC());
}
sub myOtherFnA() {return 'A';}
sub myOtherFnB() {return undef;}
sub myOtherFnC() {return 'C';}
我的问题是:当 myOtherFnB() 返回 undef 时,我想要一个将 undef 作为第二个元素的列表。但是当 myOtherFnB() 这样做时,我只得到一个包含 2 个元素的列表,即 myOtherFnA() 和 myOtherFnC() 的列表。我明白了:
('A','C')
但我想得到:
('A', undef, 'C')
如果 myOtherFnB() 是 undef 并且实际上只是将 undef 的一个元素放入列表中,我需要使用什么语法来阻止 Perl 从列表中删除返回的 myOtherFnB()?
【问题讨论】:
-
如果我删除了子定义中的 & 符号(所以它可以编译),它会按照你说的那样工作。你能发布一些表现出这个问题的工作代码吗?
-
是的,展示您在 myFunction 中实际构建列表的方式。您展示的内容按您想要的方式工作。
-
请不要修复原始帖子中的问题:: 它使为帮助您而编写的解决方案毫无意义
-
我只是修复了我自己的代码中不存在的语法错误,但在简短的示例中我概述了问题
标签: perl