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++);