sub ladd($) { my $hidden_add = $add; $add = $_[ 0 ]; return sub { my $hidden_num = $num; $num = $_[ 0 ]; my $hidden_sum = $sum $sum = $num + $add; print "$num + $add = $sum\n"; ($num,$sum) = ($hidden_num,$hidden_sum); }; $add = $hidden_add; }