Perlのgrepメソッドを使用するときにスカラー変数に値を入れる方法は?Perl grep関数を使用して変数にnull値が割り当てられないようにするにはどうすればよいですか?
たとえば、次のコードがあり、per grepメソッドの値をスカラー変数に入れる必要がありますか?
my $variable = grep(/@/,@dataRecord);
Perlのgrepメソッドを使用するときにスカラー変数に値を入れる方法は?Perl grep関数を使用して変数にnull値が割り当てられないようにするにはどうすればよいですか?
たとえば、次のコードがあり、per grepメソッドの値をスカラー変数に入れる必要がありますか?
my $variable = grep(/@/,@dataRecord);
あなたが唯一@dataRecord
のマッチング要素の一つが必要な場合は、grepを使用して、
my $variable = [ grep(/@/,@dataRecord) ];
配列リファレンスない可能性があります使用する必要がありますgrep
リターン1要素他
my ($variable) = grep(/@/,@dataRecord);
よりも意味している場合最も適切な選択肢になります。
grep
は、抽出するマッチの数に関係なく、すべての要素をチェックするためです。
@dataRecord
に複数の一致する可能性のある要素があるかどうかをまず判断する必要があります。あなたが最初に一致した要素が必要な場合は、List::MoreUtils::firstvalを使用したほうが良いと思います:
firstval BLOCK LIST first_value BLOCK LIST
はBLOCKが真と評価されたため、リスト内の最初の要素を返します。 LISTの各要素は、順に
$_
に設定されています。そのような要素が見つからなければundefを返します。