Как поместить значение в скалярную переменную при использовании метода Perl grep ?
Например, у меня есть следующий код, и мне нужно поместить значение из метода per grep вскалярная переменная?
my $variable = grep(/@/,@dataRecord);
, если вы имеете в виду grep вернуть 1 элемент, чем
grep
my ($variable) = grep(/@/,@dataRecord);
иначе вы должны использовать arrayref
my $variable = [ grep(/@/,@dataRecord) ];
Если вам нужен только один из соответствующих элементов @dataRecord, использование grep может оказаться не самым подходящим выбором.Это связано с тем, что grep будет проверять все элементы независимо от того, сколько совпадений вы хотите извлечь.
@dataRecord
Вы должны сначала решить, какой из потенциально более чем нескольких совпадающих элементов в @dataRecord вы хотите.Если вам нужен первый соответствующий элемент, вам лучше использовать List :: MoreUtils :: firstval :
firstval BLOCK LIST first_value BLOCK LIST Возвращает первый элемент в LIST, для которого BLOCKоценивает как истинное.Каждый элемент LIST по очереди установлен на $_.Возвращает undef, если такой элемент не был найден.
firstval BLOCK LIST first_value BLOCK LIST
Возвращает первый элемент в LIST, для которого BLOCKоценивает как истинное.Каждый элемент LIST по очереди установлен на $_.Возвращает undef, если такой элемент не был найден.
$_