答案 0 :(得分:3)
如果你的意思是grep
返回1个元素而不是
my ($variable) = grep(/@/,@dataRecord);
否则你应该使用arrayref
my $variable = [ grep(/@/,@dataRecord) ];
答案 1 :(得分:0)
如果您只需要@dataRecord
的匹配元素之一,则使用grep可能不是最合适的选择。这是因为grep
将检查所有元素,无论您要提取多少匹配。
您必须首先确定@dataRecord
中可能有多个匹配元素中的哪一个。如果你想要第一个匹配元素,最好使用List::MoreUtils::firstval:
firstval BLOCK LIST first_value BLOCK LIST
返回BLOCK评估为true的LIST中的第一个元素。 LIST的每个元素依次设置为
$_
。如果没有找到这样的元素,则返回undef。