@failed = $pkg->export_fail(@failed); #### sub export_fail { my $self = shift; @_; } #### @failed=$pkg->export_fail(@failed) if $pkg->can('export_fail'); #### @failed=$pkg->export_fail(@failed) if defined &{"${pkg}::export_fail"}; #### MyPackage->export_to_level( $where_to_export, $package, @what_to_export ); #### sub heavy_export_to_level { my $pkg = shift; my $level = shift; (undef) = shift; # XXX redundant arg my $callpkg = caller($level); $pkg->export($callpkg, @_); } #### my $level=shift; my $pkg=shift; my $callpkg=caller($level); $pkg->export($callpkg,@_); #### my ($level,$pkg); if ($_[1]=~/^[0-9]+$/) { # called as method $pkg=shift; $level=shift; (undef)=shift; } else { # called as function $level=shift; $pkg=shift; } my $callpkg=caller($level); $pkg->export($callpkg,@_); #### my ($level,$pkg,$callpkg); if ($_[1]=~/^[0-9]+$/) { # called as method $pkg=shift; $level=shift; (undef)=shift; $callpkg=caller($level); $pkg->export($callpkg,@_); } else { # called as function $level=shift; $pkg=shift; $callpkg=caller($level); heavy_export($pkg,$callpkg,@_); } #### my ($level,$pkg); if ($_[1]=~/^[0-9]+$/) { # called as method $pkg=shift; $level=shift; (undef)=shift; } else { # called as function $level=shift; $pkg=shift; } my $callpkg=caller($level); heavy_export($pkg,$callpkg,@_); #### my $pkg = shift; my $callpkg = caller($ExportLevel); # ... return export $pkg, $callpkg, @_ if $Verbose or $Debug or $fail && @$fail > 1; # ... return export $pkg, $callpkg, ($args ? @_ : ()) if $heavy; # ...