in reply to Pass by Value does not work

While merlyn's article does cover the issue, the short answer/easy solution is to use Storable's dclone (core module since 5.8.0)

#!/usr/bin/perl use warnings; use strict; use diagnostics; use Storable qw/dclone/; use Data::Dumper; sub left_triangle { my @ali=map dclone($_), @_; my @aoa2; foreach (1..@ali-1) { pop @{$ali[$_]}; #push @aoa2, $ali[$_]; } return \@ali; } my @xx = ([3],[7,5],[2,4,6],[8,5,9,3]); print Dumper left_triangle(@xx); print Dumper \@xx;

Good Day,
    Dean