package lvals { sub import { shift; no strict 'refs'; *{caller.q(::).$_} = do{ my $x; sub () :lvalue {$x} } for @_; } } 1; #### use lvals qw(i j matrix sum); matrix = [([1..10]) x 10]; for(i = 0; i < 10; i++) { for(j = 0; j < 10; j++) { sum += matrix->[i][j]; } } print "Matrix sum is ", sum;