为什么这不起作用?
my $str = 'we,you,them,us';
print $(split($str,','))[0];
我知道我能做到:
my @str = split...
但我记得有一种方法可以跳过它。
谢谢,
答案 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];
会很好。