use strict; use Data::Dumper; sub takes_coderef (&@); takes_coderef {print "I'm a code ref called with (", join(", ", @_), ")\n"} "first", 2, 3; sub takes_coderef (&@) { my $coderef = shift; my @otherargs = @_; &$coderef(@otherargs); print Data::Dumper->Dump([\@otherargs], ["*otherargs"]); } ___OUTPUT___ I'm a code ref called with (first, 2, 3) @otherargs = ( 'first', 2, 3 );