use strict;
use warnings;
use Data::Dump;
my $o = new Class;
my $count=0;
for my $meth (qw/foo bar baz/) {
$o->$meth($count++);
}
package Class;
sub new { return bless {} }
sub foo { my $self =shift; warn "foo: @_\n" }
sub bar { my $self =shift; warn "bar: @_\n" }
sub baz { my $self =shift; warn "baz: @_\n" }
####
foo: 0
bar: 1
baz: 2
####
my %meth = ( foo => "foo" );
$o->${\ $meth{foo} }($count++);
####
use constant {
STUFF => {
'BAR' => 'bar',
},
};
my $key = "BAR";
$o->${ \ STUFF->{$key} }($count++);