自分用メモ。perl5.8.5 だと、use に失敗しても %INC に値が入ってしまうようです。perldeltaを追いましたが、どこで直ったのか見つかりませんでした。
5.10.0 では %INC に値が入ることはなかったので、この間のどこかで直ったのだと思います。
$ perl -v This is perl, v5.8.5 built for x86_64-linux-thread-multi Copyright 1987-2004, Larry Wall ...略... $ cat HavingError.pm die "sorry"; $ cat test.pl use strict; use warnings; eval "use HavingError"; $@ and warn; print $INC{'HavingError.pm'}, "\n"; $ perl test.pl sorry at HavingError.pm line 1. Compilation failed in require at (eval 1) line 2. BEGIN failed--compilation aborted at (eval 1) line 2. ...caught at test.pl line 5. HavingError.pm
「モジュールを事前に一括useしてる場所ではuse libの関係でエラーとなる(このエラーはevalで飛ばしている)のだけど、その後のメインスクリプトではuse libで依存を解決しているのでuseできるはずなのにエラーが出る」という現象でハマりました。。。