package Slicer;
use base Exporter;
use Data::Dumper;
our @EXPORT = qw(slice unslice);
sub slice() {
my @caller = caller;
print $caller[0];
print ":: sliced :" , @_;
}
sub unslice {
for my $m (@_) {
eval "sub $m\::slice() {}";
}
}
1;
####
package SomeModule;
use Slicer;
sub something {
#code....
&slice("let me say something\n");
}
1;
####
#!/usr/bin/perl
use Slicer;
#unslice 'SomeModule';
use strict;
use SomeModule;
#use constant slice => 0;
#sub slice() {} ;
sub mainsub {
my $x = 12;#more code....
&slice("mainsub\n");
}
slice && print "&& sliced\n";
print "if sliced\n" if slice;
&slice(debug => "main\n");
mainsub;
SomeModule::something;
slice;
####
if, &&, slice, &slice(params)
####
use constant, sub() {}, unslice(@ModulesNames)