Attribution de l'aide opérateur ternaire?

Je suis sur Perl 5.8 et je suis besoin d'assigner une valeur par défaut. J'ai fini par faire ceci:

if ($model->test) {
    $review = "1"
} else {
    $review = ''
}

La valeur de $model->test va être "1" ou non. Si il y a quelque chose dans $model->test, ensemble $review à "1" contraire égal à ''.

Car il n'est pas Perl 5.10, je ne peux pas utiliser le nouveau chic défini-ou de l'exploitant. Ma première réaction a été d'utiliser l'opérateur ternaire comme ça...

defined($model->test) ? $review = "1" : $review = '';

mais cela ne fonctionne pas non plus.

Quelqu'un a une idée comment faire pour affecter plus efficacement?
Janie

  • Vous devriez vraiment mis à !1 de ne pas ''. Ils ont tous deux la même représentation de chaîne (''). La seule différence est que '' avertira si vous essayez de l'utiliser comme un certain nombre, où que !1 d'habitude. ( En supposant que vous avez toujours use warnings; en haut de chaque morceau de code Perl comme vous le devriez. )
InformationsquelleAutor Jane WIlkie | 2012-01-19