web-dev-qa-db-ja.com

Perl配列がまだ空であるかどうかを確認する方法?

うまくいけば、これは簡単なはずです。空の配列を初期化し、grepを実行し、その中に結果(ある場合)を配置し、空かどうかを確認します。そのようです:

my @match = ();
@match = grep /$pattern/, @someOtherArray;
if (#match is empty#) {
    #do something!
}

これを行う標準的な方法は何ですか?

31
JDS

配列が空かどうかをテストするために使用されるこれらのイディオムがすべて表示されます。

if (!@match)
if (@match == 0)
if (scalar @match == 0)

スカラーコンテキストでは、配列は含まれる要素の数として評価されます。

55
mob

配列の代わりにarrayrefを使用している場合、たとえば.

$my existing_match = data_layer->find('Sale',{id => $id});

上記が配列を返すと言ってから、使用してください:

if( scalar(@$existing_match) == 0) 
1
shirish kumar