my @arr1 = (1, 3, 5, 2, 4, 6); my @arr2; # Works as expected. @arr2 = sort { $a <=> $b } @arr1; print join(' ', @arr2), "\n"; # Gives: Can't use "my $a" in sort comparison at ./sort_a.pl line 12. my $a = 'whatever'; # just happens to be in scope of below sort block @arr2 = sort { $a <=> $b } @arr1; print join(' ', @arr2), "\n";