genecutl has asked for the wisdom of the Perl Monks concerning the following question:
Can't locate object method "ToUpper" via package "main" (perhaps you f +orgot to load "main"?) at \ /usr/lib/perl5/5.6.1/utf8_heavy.pl line 30
Line 30 of utf8_heavy.pl looks like this:
$list ||= eval { $caller->$type(); } || do "$file.pl" || do "$encoding/$file.pl" || do "$encoding/Is/${type}.pl" || croak("Can't find $encoding character property definition v +ia $caller->$type or $file.pl");
It appears to be the eval call where the code is dying, but I thought that eval should trap the problem. The same code (with the same utf8_heavy.pl) running on a different system works: Mac OS X works, Mandrake Linux doesn't.
I've resorted to this horrible cludge to get my code working for now, but obviously a better solution would be appreciated:
if ($file eq 'To/Upper') { $list = do '/usr/lib/perl5/5.6.1/unicode/To/Upper.pl'; } elsif ($file eq 'To/Lower') { $list = do '/usr/lib/perl5/5.6.1/unicode/To/Lower.pl'; } else { $list ||= eval { $caller->$type(); } || do "$file.pl" || do "$encoding/$file.pl" || do "$encoding/Is/${type}.pl" || croak("Can't find $encoding character property definiti +on via $caller->$type or $file.pl"); }
|
|---|