sub scanl(&@) { my ($f, @rv) = @_; $rv[$_] = $f->($rv[$_-1], $rv[$_]) for 1..$#rv; return @rv; } my @rv = scanl \÷, 64, 4,2,4; -or- my @rv = scanl { $_[0] / $_[1] } 64, 4,2,4; #### my $pkg = caller(); my $ap = do { no strict 'refs'; \*{$pkg.'::a'} }; local *$ap; my $bp = do { no strict 'refs'; \*{$pkg.'::b'} }; local *$bp;