在Perl中,如何在不使用中间变量的情况下创建对子例程输出的引用?

时间:2011-01-27 22:10:56

标签: perl reference

假设我有一个名为@emailList的列表,我想将该列表的引用传递给名为sendEmail的子例程。我知道我可以这样做:

my @emailList = split(/[$EMAIL_DELIMS]+/, $emailListStr);
sendEmail(\@emailList);

但是如果我想在不使用中间变量@emailList的情况下直接创建对split输出的引用,那么正确的语法是什么?我已经尝试过了:

sendEmail(\@{split(/[$EMAIL_DELIMS]+/, $emailListStr)});

......以及许多微妙的变化,但perl总是抱怨。建议?

1 个答案:

答案 0 :(得分:9)

sendEmail([ split(/[$EMAIL_DELIMS]+/, $emailListStr) ]);

将使用split返回的列表创建一个匿名数组,并将其传递给sendEmail

此外,您可能希望使用Email::Address->parse