bonjour,
qq1 pourrait-il m'expliquer ce code Perl :
qui est censé tester si une expression est régullière...Code:
1
2
3 sub is_regex { return eval { m!$_[0]!; 1; }; }
que signifie m!$_[0]! ?
merci d'avance
Version imprimable
bonjour,
qq1 pourrait-il m'expliquer ce code Perl :
qui est censé tester si une expression est régullière...Code:
1
2
3 sub is_regex { return eval { m!$_[0]!; 1; }; }
que signifie m!$_[0]! ?
merci d'avance
m! ! est l'opérateur de recherche de correspondance (souvent on utilise plutôt m/ / et $_[0] est le premier indice du tableau @_ qui contient les paramètres passés à la fonction, donc $_[0] est le premier paramètre passé à ta fonction.
en réalité, ce que je ne comprend pas bien, c la fonction eval :
pourquoi a-t-on 1; ?Code:return eval { m!$_[0]!; 1; };
je n'utilise jamais eval, mais voilà ce que moi je comprends (à vérifier donc...)
eval va exécuter chacune des expressions:
- m!$_[0]!
- 1
normalement, la valeur renvoyée par eval va être celle de la dernière expression, donc 1 si tout se passe bien.
si il y a une erreur d'exécution (sur la première expression), eval va renvoyer une valeur indéfinie.
donc, en gros, si ta fonction retourne 1 => ok, sinon => pas ok.