# -*- Perl -*- use strict; use warnings; package TT; use base 'Exporter'; our @EXPORT = qw/s1/; sub s1 { my $sub = shift || \&s2; $sub->(qw/foo bar/); } sub s2 { print "Default s2\n"; print "Args: @_\n"; } 1; __END__ #### #!/usr/bin/perl use strict; use warnings; use TT; # s1 with no args; s1; print "\n"; # s1 with explicit code passed in; s1 sub { local $\="\n"; print "Customized s2"; print "Args:"; print for @_; }; __END__ #### Default s2 Args: foo bar Customized s2 Args: foo bar