web-dev-qa-db-fra.com

Perl comment vérifier si le tableau est toujours vide?

J'espère que cela devrait être simple. J'initialise un tableau vide, fais un grep et y place les résultats (le cas échéant), puis vérifie s'il est vide. Ainsi:

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

Quelle est la manière standard de procéder?

31
JDS

Vous verrez tous ces idiomes utilisés pour tester si un tableau est vide.

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

Dans un contexte scalaire, un tableau est évalué comme le nombre d'éléments qu'il contient.

55
mob

Si vous utilisez un tableauref au lieu d'un tableau, dites par exemple.

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

Dire ci-dessus renvoie un tableau, puis utilisez:

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