diff options
Diffstat (limited to 'contrib/perl5/lib/subs.pm')
-rw-r--r-- | contrib/perl5/lib/subs.pm | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/contrib/perl5/lib/subs.pm b/contrib/perl5/lib/subs.pm new file mode 100644 index 0000000..aa332a6 --- /dev/null +++ b/contrib/perl5/lib/subs.pm @@ -0,0 +1,38 @@ +package subs; + +=head1 NAME + +subs - Perl pragma to predeclare sub names + +=head1 SYNOPSIS + + use subs qw(frob); + frob 3..10; + +=head1 DESCRIPTION + +This will predeclare all the subroutine whose names are +in the list, allowing you to use them without parentheses +even before they're declared. + +Unlike pragmas that affect the C<$^H> hints variable, the C<use vars> and +C<use subs> declarations are not BLOCK-scoped. They are thus effective +for the entire file in which they appear. You may not rescind such +declarations with C<no vars> or C<no subs>. + +See L<perlmodlib/Pragmatic Modules> and L<strict/strict subs>. + +=cut + +require 5.000; + +sub import { + my $callpack = caller; + my $pack = shift; + my @imports = @_; + foreach $sym (@imports) { + *{"${callpack}::$sym"} = \&{"${callpack}::$sym"}; + } +}; + +1; |