Quand je lance ceci:Pourquoi ne continue-t-il pas à exécuter le bloc suivant dans Perl 5.10?
use feature ':5.10';
$x=1;
given ($x) {
when(1) {
say '1';
$x = 2;
continue;
}
when (2) {
say '2';
}
}
Cela devrait imprimer à la fois 1 et 2, mais il ne imprime 1. Suis-je manque quelque chose?
EDIT:
J'ai ajouté $ x = 2 et il imprime encore que « 1 »
Pourquoi attendez-vous la sortie 2? '$ x' est 1. – friedo
voir mon édition ... ne fonctionne toujours pas – JoelFan
cela ne fonctionnera pas parce que' donné' copie '$ x' à' $ _', qui est le paramètre de la correspondance intelligente. Si vous définissez '$ _ = 2' dans le premier' when', cela fonctionnera. – friedo