Perl匿名列表问题

时间:2010-11-19 19:54:43

标签: perl list

为什么这不起作用?

my $str = 'we,you,them,us';

print $(split($str,','))[0];

我知道我能做到:

my @str = split...

但我记得有一种方法可以跳过它。

谢谢,

3 个答案:

答案 0 :(得分:8)

你有反向拆分的参数顺序。在parens前面不应该有美元符号。以下工作(加号强制perl将以下内容评估为表达式):

use strict;
use warnings;

my $str = 'we,you,them,us';

print +(split(',',$str))[0];

答案 1 :(得分:5)

任何时候你只需要访问函数返回值的一小部分,你应该检查是否有一个较小的范围函数可以使用。在这种情况下,我可能会使用正则表达式:

print $str =~ /^([^,]*)/;

答案 2 :(得分:-1)

使用[split $str, ',']->[0];会很好。