1package subs; 2 3our $VERSION = '1.02'; 4 5=head1 NAME 6 7subs - Perl pragma to predeclare sub names 8 9=head1 SYNOPSIS 10 11 use subs qw(frob); 12 frob 3..10; 13 14=head1 DESCRIPTION 15 16This will predeclare all the subroutine whose names are 17in the list, allowing you to use them without parentheses 18even before they're declared. 19 20Unlike pragmas that affect the C<$^H> hints variable, the C<use vars> and 21C<use subs> declarations are not BLOCK-scoped. They are thus effective 22for the entire package in which they appear. You may not rescind such 23declarations with C<no vars> or C<no subs>. 24 25See L<perlmodlib/Pragmatic Modules> and L<strict/strict subs>. 26 27=cut 28 29require 5.000; 30 31sub import { 32 my $callpack = caller; 33 my $pack = shift; 34 my @imports = @_; 35 foreach my $sym (@imports) { 36 *{"${callpack}::$sym"} = \&{"${callpack}::$sym"}; 37 } 38}; 39 401; 41