Si vous tapez la commande perl -V sous un FreeBSD récent, le perl étant celui fourni avec le système, vous aurez l'occasion de constater les deux lignes suivantes dans la sortie:

Locally applied patches:
      defined-or

Cela se réfère à un patch non-officiel, backporté de la branche de développement 5.9.x, qui introduit un nouvel opérateur, //. Cet opérateur (connu sous le nom de defined or ou dor) est un opérateur booléen binaire tout comme notre ami bien connu ||, sauf qu'il teste que l'opérande de gauche est défini (au sens de defined()) au lieu d'être vrai (en perl, la chaine vide et le nombre 0 sont définis, mais non vrais.)

C'est particulièrement pratique pour coller des valeurs par défaut dans des variables non définies, tout en n'écrasant pas la valeur 0 ou “” si elle s'y trouve déjà. En fait c'est tellement pratique que Alexey Tourbin, packageur de Perl pour FreeBSD, l'y a collé par défaut, n'en pouvant plus d'attendre la version 5.10.0. Evidemment, l'utiliser risque de poser des problèmes de portabilité sur les autres OS

codaz/perl/utiliser_l_operateur_de_perl_sous_freebsd.txt · Last modified: 2010/01/12 13:29 (external edit)