use if $ENV{SLICE}, 'Slicer';
use if !$ENV{SLICE}, 'constant', slice => 0;
####
package Slicer;
use base Exporter;
our @EXPORT = qw( slice );
sub _slice {
my @caller = caller;
print $caller[0];
print ":: sliced :" , @_;
return 1;
}
if ($ENV{SLICE}) {
*slice = \&_slice;
} else {
require constant;
import constant slice => 0;
}
1;
####
package Slicer;
use base Exporter;
our @EXPORT = qw( slice sliced );
use constant slice => $ENV{SLICE};
sub sliced {
return unless slice;
my @caller = caller;
print $caller[0];
print ":: sliced :" , @_;
}
1;
####
>set SLICE=
>perl -wle"use Slicer; print('!') if slice;
>perl -wle"use Slicer; sliced('!');
>set SLICE=1
>perl -wle"use Slicer; print('!') if slice;
!
>perl -wle"use Slicer; sliced('!');
main:: sliced :!