in reply to How to located cause of 'Subroutine SomeSubName redefined...' warnings

See Devel::Trace
perl -d:Trace ...
  • Comment on Re: How to located cause of 'Subroutine SomeSubName redefined...' warnings
  • Download Code

Replies are listed 'Best First'.
Re^2: How to located cause of 'Subroutine SomeSubName redefined...' warnings
by Anonymous Monk on Dec 10, 2010 at 19:18 UTC
    No Joy. The 'Subroutine SomeSubName redefined....' warnings happen before the trace output starts. I'll keep looking at Devel::Trace to make sure I'm not missing something.

    It appears to me that -d:Trace is generating output at run time. I need to see what is happening at compile time.... I think.
      Um, compile time can happen at runtime if you use do/require
      $ perl -d:Trace -e" use strict;" $ perl -d:Trace -e" require strict;" >> -e:1: require strict; >> C:/perl/5.10.1/lib/strict.pm:3: $strict::VERSION = "1.04"; >> C:/perl/5.10.1/lib/strict.pm:6: unless ( __FILE__ =~ /(^|[\/\\])\Q$ +{\__PACKAGE__}\E\.pmc?$/ ) { >> C:/perl/5.10.1/lib/strict.pm:6: unless ( __FILE__ =~ /(^|[\/\\])\Q$ +{\__PACKAGE__}\E\.pmc?$/ ) { >> C:/perl/5.10.1/lib/strict.pm:12: my %bitmask = ( >> C:/perl/5.10.1/lib/strict.pm:32: my $default_bits = bits(qw(refs su +bs vars)); >> C:/perl/5.10.1/lib/strict.pm:19: my $bits = 0; >> C:/perl/5.10.1/lib/strict.pm:20: my @wrong; >> C:/perl/5.10.1/lib/strict.pm:21: foreach my $s (@_) { >> C:/perl/5.10.1/lib/strict.pm:22: push @wrong, $s unless exists +$bitmask{$s}; >> C:/perl/5.10.1/lib/strict.pm:23: $bits |= $bitmask{$s} || 0 +; >> C:/perl/5.10.1/lib/strict.pm:22: push @wrong, $s unless exists +$bitmask{$s}; >> C:/perl/5.10.1/lib/strict.pm:23: $bits |= $bitmask{$s} || 0 +; >> C:/perl/5.10.1/lib/strict.pm:22: push @wrong, $s unless exists +$bitmask{$s}; >> C:/perl/5.10.1/lib/strict.pm:23: $bits |= $bitmask{$s} || 0 +; >> C:/perl/5.10.1/lib/strict.pm:25: if (@wrong) { >> C:/perl/5.10.1/lib/strict.pm:29: $bits; >> C:/perl/5.10.1/lib/strict.pm:44: 1; $