#!/usr/bin/perl use warnings; use strict; sub test1 {1}; sub test2 {2}; sub test3 {3}; sub test4 {4}; sub findsym { no strict 'refs'; my ($pkg,$ref) = @_; foreach my $sym ( values %{$pkg."::"} ) { return *$sym{NAME} if *{$sym}{CODE} && *{$sym}{CODE} == $ref; } } my @tests = (\&test1,\&test2,\&test3,\&test4); foreach my $subref (@tests) { my $name = findsym(__PACKAGE__,$subref); print STDERR "Test $name\n"; print $subref->() . "\n"; }