[Perl] Où $1 est-il capturé?
Sébastien MORETTI
sebastien.moretti at unil.ch
Mar 29 Mar 14:15:39 CEST 2016
Hello
je suis en train de tester le code Perl d'un autre gars et j'ai quelques
soucis avec $1 qui capture je ne sais trop quoi.
foreach my $r_num ( keys %{$self->{mnet}{$mnet_num}{rc}} ){
my $r_id = $self->{rc}{$r_num}{id};
$r_id =~ s/_(B|LR|RL)$//;
my $dir = $1;
die "Invalid ID syntax: [$r_id]\n" unless $dir;
$buf{$r_id}{$dir} = $r_num;
}
Auparavant la substitution $r_id =~ s/_(B|LR|RL)$//; était utile car
$r_id se terminait par _(B|LR|RL).
Désormais ce n'est plus le cas.
Je m'attendais à ce que $dir soit undef mais $dir prend une valeur qui
vient de je ne sais où. Même comportement si j'enlève la ligne de la
substitution.
Avez-vous une idée d'où $1 tire sa valeur?
Est-ce possible que ce soit hors de la boucle?
Merci
Perl 5.18.2, Linux 2.6.32-504.el6.x86_64
--
Sébastien Moretti
Plus d'informations sur la liste de diffusion Perl