#!/usr/bin/perl -w use List::Util qw[ reduce ]; print reduce{ print "a = '$a', b = '$b'\n"; eval "showcontext($a + $b)";} 1,2,3; sub showcontext { print "Context: "; if (wantarray) { print "array\n"; } elsif (defined(wantarray)) { print "scalar\n"; } else { print "void\n"; } $_[0]; }