http://www.perlmonks.org?node_id=396109


in reply to Can't Reference a Sub by Variable when using Strict

I'm usually partial to this method. Of course, you might not like the fact that it searches @ISA for a class that contains the subroutine. Oh well.

#!/usr/bin/perl -w use strict; my %lists = ( 'test1' => "stuff", 'test2' => "things", 'test3' => "whatever" ); for my $i (keys %lists) { my $sub = UNIVERSAL::can(__PACKAGE__,$i) || sub { warn "Couldn't cal +l $i" }; &$sub; } sub test1 { print "New message for test1\n"; } sub test2 { print "New message for test2\n"; } __END__ New message for test1 Couldn't call test3 at - line 13. New message for test2