sub sub1 { print "sub1 ran, got args: [@_]\n" } sub sub2 { print "sub2 ran, got args: [@_]\n" } my @refs = ( sub { sub1(1, 2, 3) }, sub { sub1('foo', 'bar') }, sub { sub2(4, 5, 6) }, sub { sub2('some', 'string') }, ); $_->() foreach @refs; #### sub foo { print "Got args: [@_]\n" } my @args = ( [ 'A', 'B', 1 ], [ 'C', 'D', 2 ], ); foreach my $arg_ref (@args) { foo(@$arg_ref) }