Donc, je ne l'ai jamais su et je voudrais avoir quelques éclaircissements dessus. Je sais que si vous faites
foreach (@list){
si vous modifiez $ _ dans cette boucle, cela affectera les données réelles. Mais, je ne savais pas que si vous le faisiez
foreach my $var1 (@list){
Si vous changiez $ var1 dans la boucle, cela changerait les données réelles. : -/Donc, existe-t-il un moyen de boucler @list mais garder la variable en lecture seule, ou une copie qui, si elle est modifiée, ne changera pas la valeur de @list?
Attention, $ var1 est pas une référence, mais un alias. Voir la différence: my $ var2 = \ $ list [0]; imprime "$ var2 \ n"; affiche SCALAR (0x8171880) – wazoox
@ wazoox: Il voulait dire si $ var1 contenait une référence, par ex. si @list contenait un tas de références HASH. Même si vous cassez l'alias, vous avez toujours une autre copie d'une référence à la même chose. –