sub f { my ($arg1,$arg2,$arg3) = @_; .... uses arg1, arg2 arg3 .... } f(); # Works. ($arg1, $arg2 and $arg3 are undef.) f(1,2,3,4); # Works. ('4' is ignored.) #### sub f { my ($arg1) = @_; print(defined($arg1) ? $arg1 : '[undef]', "\n"); } sub t1 { print("t1: "); f(); } sub t2 { print("t2: "); &f; } t1('moo'); # t1: [undef] t2('moo'); # t2: moo