diff options
Diffstat (limited to 'linux-x86/lib/perl-base/Exporter.pm')
-rw-r--r-- | linux-x86/lib/perl-base/Exporter.pm | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/linux-x86/lib/perl-base/Exporter.pm b/linux-x86/lib/perl-base/Exporter.pm deleted file mode 100644 index b46dad4..0000000 --- a/linux-x86/lib/perl-base/Exporter.pm +++ /dev/null @@ -1,98 +0,0 @@ -package Exporter; - -require 5.006; - -# Be lean. -#use strict; -#no strict 'refs'; - -our $Debug = 0; -our $ExportLevel = 0; -our $Verbose ||= 0; -our $VERSION = '5.72'; -our (%Cache); - -sub as_heavy { - require Exporter::Heavy; - # Unfortunately, this does not work if the caller is aliased as *name = \&foo - # Thus the need to create a lot of identical subroutines - my $c = (caller(1))[3]; - $c =~ s/.*:://; - \&{"Exporter::Heavy::heavy_$c"}; -} - -sub export { - goto &{as_heavy()}; -} - -sub import { - my $pkg = shift; - my $callpkg = caller($ExportLevel); - - if ($pkg eq "Exporter" and @_ and $_[0] eq "import") { - *{$callpkg."::import"} = \&import; - return; - } - - # We *need* to treat @{"$pkg\::EXPORT_FAIL"} since Carp uses it :-( - my $exports = \@{"$pkg\::EXPORT"}; - # But, avoid creating things if they don't exist, which saves a couple of - # hundred bytes per package processed. - my $fail = ${$pkg . '::'}{EXPORT_FAIL} && \@{"$pkg\::EXPORT_FAIL"}; - return export $pkg, $callpkg, @_ - if $Verbose or $Debug or $fail && @$fail > 1; - my $export_cache = ($Cache{$pkg} ||= {}); - my $args = @_ or @_ = @$exports; - - if ($args and not %$export_cache) { - s/^&//, $export_cache->{$_} = 1 - foreach (@$exports, @{"$pkg\::EXPORT_OK"}); - } - my $heavy; - # Try very hard not to use {} and hence have to enter scope on the foreach - # We bomb out of the loop with last as soon as heavy is set. - if ($args or $fail) { - ($heavy = (/\W/ or $args and not exists $export_cache->{$_} - or $fail and @$fail and $_ eq $fail->[0])) and last - foreach (@_); - } else { - ($heavy = /\W/) and last - foreach (@_); - } - return export $pkg, $callpkg, ($args ? @_ : ()) if $heavy; - local $SIG{__WARN__} = - sub {require Carp; &Carp::carp} if not $SIG{__WARN__}; - # shortcut for the common case of no type character - *{"$callpkg\::$_"} = \&{"$pkg\::$_"} foreach @_; -} - -# Default methods - -sub export_fail { - my $self = shift; - @_; -} - -# Unfortunately, caller(1)[3] "does not work" if the caller is aliased as -# *name = \&foo. Thus the need to create a lot of identical subroutines -# Otherwise we could have aliased them to export(). - -sub export_to_level { - goto &{as_heavy()}; -} - -sub export_tags { - goto &{as_heavy()}; -} - -sub export_ok_tags { - goto &{as_heavy()}; -} - -sub require_version { - goto &{as_heavy()}; -} - -1; -__END__ - |