my $l = new z; $l->{xxx4} = 'wrong way'; my $str = 'xxx'; my $str1 = "4"; my $str2 = "param1"; eval ("print \$l->$str$str1(\$str2)"); package z; sub new { my $class = shift; my $self = {}; return bless $self, $class; }; sub xxx4 { my $self = shift; my $param = shift; return "were requested xxx4: $param \n"; }; #### eval ("print \$l->$str$str1(\$str2)"); #### $method = $fast ? "findfirst" : "findbest"; $fred->$method(@args); # call by name #### my $method = $str.$str1; print $l->$method($str2);