|Subject:||HARNESS_PERL gets @INC wrong|
When you use HARNESS_PERL, Test::Harness will lay the @INC of the Perl which ran Test::Harness on top of HARNESS_PERL's @INC. The trouble is in Straps->_filtered_INC. We assume that we want to run the tests with the same @INC as we currently have. This is not true if we're running with a different Perl. For example, if Test::Harness runs with 5.8.6 and HARNESS_PERL=perl5.4.5 Test::Harness will slap 5.8.6's @INC on top of 5.4.5 leading to 5.4.5 trying to use 5.8.6's modules. $ HARNESS_PERL=perl5.4.5 perl -MTest::Harness -wle '$Test::Harness::Debug = 1; runtests(@ARGV)' t/00test_harness_check.t t/00test_harness_check....# Running: perl5.4.5 -w t/00test_harness_check.t # PERL5LIB=/System/Library/Perl/5.8.6/darwin-thread-multi-2level:/System/Library/Perl/5.8.6:/Library/Perl/5.8.6/darwin-thread-multi-2level:/Library/Perl/5.8.6:/Library/Perl:/Network/Library/Perl/5.8.6/darwin-thread-multi-2level:/Network/Library/Perl/5.8.6:/Network/Library/Perl:/System/Library/Perl/Extras/5.8.6/darwin-thread-multi-2level:/System/Library/Perl/Extras/5.8.6:/Library/Perl/5.8.1:. Perl 5.006 required--this is only version 5.00405, stopped at /System/Library/Perl/5.8.6/vars.pm line 3.