package Foo; use strict; sub new { return bless {f => 'foo'}, $_[0]; } sub foo { shift; print "@_\n"; } 1; package main; use strict; my $a = new Foo(); my $f = $a->{f}; no strict qw(subs); $a->$f('foobar'); 1; __END__