#! perl -slw use strict; { package Other; sub commandFunc { print "Doing Other::commandFunc with args: [ @{ $_[0] } ]"; return; } } sub executeCommand{ no strict 'refs'; my( $func, $argRef ) = @_; *{$func}->( $argRef ); } my @a = 1.. 10; executeCommand( 'Other::commandFunc', \@a ); __END__ C:\test>junk Doing Other::commandFunc with args: [ 1 2 3 4 5 6 7 8 9 10 ]