Entonces, nunca supe esto y quiero aclararlo un poco. Sé que si lo haces
foreach (@list){
si cambias $ _ en ese bucle, afectará a los datos reales. Sin embargo, no sabía que si lo hizo
foreach my $var1 (@list){
Si ha cambiado $ var1 en el bucle que cambiaría los datos reales. : -/Entonces, ¿hay alguna forma de recorrer @list pero mantener la variable como una copia de solo lectura, o una copia que si se cambia no cambiará el valor en @list?
tener cuidado, $ var1 no es una referencia, pero un alias. Vea la diferencia: my $ var2 = \ $ list [0]; imprimir "$ var2 \ n"; muestra SCALAR (0x8171880) – wazoox
@wazoox: quiso decir si $ var1 contenía una referencia, p. Ej. if @list contenía un grupo de referencias HASH. Incluso si rompe el aliasing, todavía tiene otra copia de una referencia a la misma cosa. –