#!perl use warnings; use strict; our $LOOPCOUNTER; sub forc (&@) { my($func, @arr) = @_; for $LOOPCOUNTER (0 .. @arr - 1) { &$func(local $_ = $arr[$LOOPCOUNTER]); } } forc { my($last) = @_; print "($LOOPCOUNTER\n"; forc { print " $LOOPCOUNTER $_ $last\n"; } qw"andy john"; print ")$LOOPCOUNTER\n" } qw"smith brown"; __END__