my $caller=(caller(1))[0]; no strict 'refs'; @out=sort { local (${"${caller}::a"},${"${caller}::b"})=($a,$b); $sort->($a,$b) } @in;