use strict; use warnings; my @list = ( "abc", "def" ); my $nelts = 3; # Case 1 { my @arr = ( [@list] ) x $nelts; for my $e (@arr) { print "Case 1 before: $e: $e->[0] $e->[1]\n" } $arr[0]->[0] = "xyz"; $arr[0]->[1] = "123"; for my $e (@arr) { print "Case 1 after : $e: $e->[0] $e->[1]\n" } } print "\n"; # Case 2 { my @arr = map { [@list] } 1 .. $nelts; for my $e (@arr) { print "Case 2 before: $e: $e->[0] $e->[1]\n" } $arr[0]->[0] = "xyz"; $arr[0]->[1] = "123"; for my $e (@arr) { print "Case 2 after: $e: $e->[0] $e->[1]\n" } } #### Case 1 before: ARRAY(0x61ddc8): abc def Case 1 before: ARRAY(0x61ddc8): abc def Case 1 before: ARRAY(0x61ddc8): abc def Case 1 after : ARRAY(0x61ddc8): xyz 123 Case 1 after : ARRAY(0x61ddc8): xyz 123 Case 1 after : ARRAY(0x61ddc8): xyz 123 Case 2 before: ARRAY(0x61de28): abc def Case 2 before: ARRAY(0x315918): abc def Case 2 before: ARRAY(0x315990): abc def Case 2 after: ARRAY(0x61de28): xyz 123 Case 2 after: ARRAY(0x315918): abc def Case 2 after: ARRAY(0x315990): abc def #### my @arr = ( [@list] ) x $nelts; #### my @arr = map { [@list] } 1 .. $nelts;