Bonjour à tous,

j'ai une question qui tourne autour des variables implicites et peut-être leur portée.

Pourquoi est-ce que le code suivant renvoie 'uninitialized value' :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
use strict;
$_ = '1 2 3 4 5 6';
@_ = split;
my $premier_elt = shift;
print "$premier_elt\n";
pour que ça marche, il suffit de remplacer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
my $premier_elt = shift;
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
my $premier_elt = shift(@_);
Pourquoi est-ce une erreur alors que cette tournure me parait classique. Par exemple, l'appel implicite à @_ ne pose pas de problème dans les sub {} :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
sub ma_fonction {
  my $premier_arg = shift;
  etc...
}

merci d'avance