Cremers LMG <[EMAIL PROTECTED]> writes:
>I've used your clear description in 'Encode.html' to convert from cp1252 to
>utf8,
>using the lines:
>
>use Encode;
>open (INPUT,"<:encoding(cp1252)","$in")|| die "FileOpen fail: $in $!\n";
>open (OUT,">:utf8","$out") || die "FileOpen 1 failed: $out : $!\n";
>
>The script works fine on Unix, but when I run the compiled version on PC
>(compiled with pp)

That is the problem - the 'pp' thing. At pp compile time it didn't 
know you wanted PerlIO.pm (or PerlIO::encoding).

>I get the following error:
>
>"Can't locate PerlIO.pm in @INC (@INC contains: CODE(0xcab4e8) .)..."

What is the _exact_ message?

>
>The .pm is in the lib directory. 

But (if I understand how pp works correctly) the pp compiled thing 
does not look in the lib directory, only in the magical CODE() thing.
The CODE thing is a subroutine that finds the module in compiled-in
way.

>The statement
>"push(@INC,"c:\\Perl\\lib\\PerlIO.pm");" 
>doesn't seem to help either.

It wouldn't - @INC is for directory names to look in not module names.
And a push() like that happens at run time.

 use lib "C:\\Perl\\lib"; 

might help, but I expect the equivalent was already in force anyway.

I _think_ if you add

use PerlIO qw(encoding);

To your script then pp will notice that PerlIO.pm and encoding.pm 
are needed.

(My pp like thing would.)


Reply via email to