perl 5.10 smart match
depuis perl 5.10, on peut utiliser l’opérateur smart match (venu de la planète perl6) pour comparer une valeur en lhs contextuellement à la nature de la rhs. De nombreuses erreurs de débutants disparaissent au passage:
plus d’hésitation entre ‘=~’ et ‘~=’ :
$line =~ /^To/ # peut s'écrire $line ~~ /^To/
plus d’erreur bête entre ‘==’ et ‘eq’
$line ~~ 12; $line ~~ 'foo';
l’utilisation la plus courante d’any (simple comparaison des valeurs) est prise
en charge:
use List::MoreUtils qw(any);
my $foo = 'joe';
my @bar = qw( joe bar );
if ( any { $_ eq $foo } @bar ) {
print "$foo est présent dans le tableau\n";
}peut maintenant s’écrire:
my $foo = 'joe'; my @bar = qw( joe bar ); $foo ~~ \@bar and say "$foo est présent dans le tableau";
Related posts: