package Package::ToBeReRequired1;
use strict;
use Carp();
use Package::ReRequire(
CLUCK => 0,
METHOD => 0,
CONDITION => 0,
THING => 'default_thing',
);
sub get_sub {
use warnings;
return sub {
my( $self ) = @_ if METHOD;
my( $output ) = ( METHOD ) ? $self : '';
if( CONDITION ) {
$output .= ' CONDITION ';
};
$output .= ' UNCONDITIONAL ';
$output .= THING;
Carp::cluck __CALLER__ . ' clucking ' if CLUCK;
return $output;
};
}
1;
__END__
####
package Package::ReRequire1;
use strict;
use warnings;
# use Data::Dumper; $Data::Dumper::Terse=1;
use Package::ReRequire();
sub import {
Package::ReRequire::rerequire(
'Package::ToBeReRequired1',
CLUCK => 0,
METHOD => 0,
CONDITION => 1,
THING => __PACKAGE__,
);
*function = Package::ToBeReRequired1::get_sub();
}
1;
__END__
##
##
package Package::ReRequire2;
use strict;
use warnings;
# use Data::Dumper; $Data::Dumper::Terse=1;
use Package qw[ReRequire];
sub import {
ReRequire::rerequire(
'Package::ToBeReRequired1',
CLUCK => 1,
METHOD => 1,
CONDITION => 0,
THING => __PACKAGE__,
);
*method = Package::ToBeReRequired1::get_sub();
}
1;
__END__
##
##
$ perl -Mwarnings -e ' use B::Deparse; use Package::ReRequire1; printf( "%s = %s\n", $_, B::Deparse->new->coderef2text( \&{ "Package::ReRequire1::" . $_ } ) ) for keys %{ "Package::ReRequire1::" };'
function = {
package Package::ToBeReRequired1;
BEGIN {${^WARNING_BITS} = "UUUUUUUUUUUU"}
use strict 'refs';
'???';
my($output) = '';
do {
$output .= ' CONDITION '
};
$output .= ' UNCONDITIONAL ';
$output .= 'Package::ReRequire1';
'???';
return $output;
}
BEGIN = ;
import = {
package Package::ReRequire1;
BEGIN {${^WARNING_BITS} = "UUUUUUUUUUUU"}
use strict 'refs';
Package::ReRequire::rerequire('Package::ToBeReRequired1', 'CLUCK', 0, 'METHOD', 0, 'CONDITION', 1, 'THING', 'Package::ReRequire1');
*function = Package::ToBeReRequired1::get_sub();
}
$ perl -Mwarnings -e ' use B::Deparse; use Package::ReRequire2; printf( "%s = %s\n", $_, B::Deparse->new->coderef2text( \&{ "Package::ReRequire2::" . $_ } ) ) for keys %{ "Package::ReRequire2::" };'
BEGIN = ;
method = {
package Package::ToBeReRequired1;
BEGIN {${^WARNING_BITS} = "UUUUUUUUUUUU"}
use strict 'refs';
my($self) = @_;
my($output) = $self;
'???';
$output .= ' UNCONDITIONAL ';
$output .= 'Package::ReRequire2';
Carp::cluck('Package::ReRequire2 clucking ');
return $output;
}
import = {
package Package::ReRequire2;
BEGIN {${^WARNING_BITS} = "UUUUUUUUUUUU"}
use strict 'refs';
ReRequire::rerequire('Package::ToBeReRequired1', 'CLUCK', 1, 'METHOD', 1, 'CONDITION', 0, 'THING', 'Package::ReRequire2');
*method = Package::ToBeReRequired1::get_sub();
}
##
##
$ export CVSROOT=:pserver:anon@bennymack.com:/home/ben/documents/cvsroot
$ cvs co my_modules