use strict; use warnings; my $obj = bless {}; my $verb = 'AddAccount'; for my $os (qw(SUN HP XP)) { my $sub = $obj->can ("${os}AddAccount"); if (! $sub) { print "Don't know how to $verb for $os\n"; } else { $sub->($obj); } } sub LINUXAddAccount { my ($self) = @_; print "Linux goes moo\n"; } sub AIXAddAccount { my ($self) = @_; print "AIX goes moo\n"; } sub HPAddAccount { my ($self) = @_; print "HP goes moo\n"; } sub SUNAddAccount { my ($self) = @_; print "SUN goes moo\n"; }