package NestedMap; require Exporter; @ISA = qw(Exporter); @EXPORT = qw(nestedmap); use strict; use warnings; # [POD snipped out] sub nestedmap(&@) { my $f = shift; map { local @NestedMap::stack = ($_, @NestedMap::stack); $f->($_); } @_ }