use strict; use warnings; # selfcontained simulation of feature pragma package my_feature; use Carp; sub import { my $pkg = (caller)[0]; if ( grep {$_ eq "try"} @_ ) { for my $func (qw/try catch finally/) { carp "Warning: ${pkg}::$func() will be shadowed by feature 'try'" if exists &{"${pkg}::$func"}; } } } 1; BEGIN { $INC{"my_feature.pm"} = "DEMO from " . __FILE__ } # end simulation package Foo; use Try::Tiny; use my_feature "try"; #### perl /home/lanx/perl/pm/check_stash_sub.pl Warning: Foo::try() will be shadowed by feature 'try' at /home/lanx/perl/pm/check_stash_sub.pl line 23. Warning: Foo::catch() will be shadowed by feature 'try' at /home/lanx/perl/pm/check_stash_sub.pl line 23. Warning: Foo::finally() will be shadowed by feature 'try' at /home/lanx/perl/pm/check_stash_sub.pl line 23.