The existing logic in openunicode() bails out if it fails to open the first filespec it tries. I believe the intent is to iterate through @INC until it successfully finds and opens the file or exhausts the list. --- lib/Unicode/UCD.pm;-0 Sun Jul 1 01:56:14 2001 +++ lib/Unicode/UCD.pm Mon Jul 2 14:49:25 2001 @@ -44,6 +44,7 @@ for my $d (@INC) { use File::Spec; $f = File::Spec->catfile($d, "unicode", @path); + next unless -f $f; if (open($$rfh, $f)) { last; } else {Thread Next