# stripped down test code #!/usr/local/ActivePerl-5.6/bin/perl use strict; use warnings; use diagnostics; use File::BaseName; printf("%-45s%-s\n",$_,$INC{$_}) foreach (sort keys %INC); package prob_func; sub secondfunc{ use File::Basename; return; } __OUTPUT__ #(relevent parts only) Subroutine fileparse_set_fstype redefined at C:/Program Files/Perl/lib/File/Basename.pm line 152 (#1) (W redefine) You redefined a subroutine. To suppress this warning, say { no warnings; eval "sub name { ... }"; } Subroutine fileparse redefined at C:/Program Files/Perl/lib/File/Basename.pm line 166 (#1) Subroutine basename redefined at C:/Program Files/Perl/lib/File/Basename.pm line 222 (#1) Subroutine dirname redefined at C:/Program Files/Perl/lib/File/Basename.pm line 235 (#1) File/BaseName.pm C:/Program Files/Perl/lib/File/BaseName.pm File/Basename.pm C:/Program Files/Perl/lib/File/Basename.pm