my @all_subs = (\sub_1,\sub_2); #### #!/usr/bin/perl -l use strict; use warnings; my $obj=bless {}, 'Foo'; my @allsubs=(\&sub1,\&sub2); my $code=$allsubs[rand @allsubs]; $obj->$code(qw/foo bar/); sub sub1 { my $caller=shift; print "Caller is $caller, this is sub1, args are <@_>"; } sub sub2 { my $caller=shift; print "Caller is $caller, this is sub2"; } __END__