It does work. Well, it should. What are you really trying to do? It's hard to tell without seeing the rest of your code.
TT.pm (also taking into account ikegami's very good suggestion)
# -*- 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__
testTT.pl
#!/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__
(Try it yourself!) output:
Default s2 Args: foo bar Customized s2 Args: foo bar
Incidentally, perldoc perlsub and perldoc perlref would help.
In reply to Re^5: Calling functions from different namespaces
by blazar
in thread Calling functions from different namespaces
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |