xref: /openbsd-src/gnu/usr.bin/perl/lib/subs.pm (revision 2b0358df1d88d06ef4139321dd05bd5e05d91eaf)
1package subs;
2
3our $VERSION = '1.00';
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 file 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 $sym (@imports) {
36	*{"${callpack}::$sym"} = \&{"${callpack}::$sym"};
37    }
38};
39
401;
41