On Monday, May 6, 2002, at 06:57 , Dan Kogai wrote:
On Monday, May 6, 2002, at 05:16 , Tatsuhiko Miyagawa wrote:
panic happens while hacking with encoding pragma.
It seems "use encoding" is still in effect after you 'use EncBar'.
Simply commenting out 'use encoding 'euc-jp'' in encoding-test.pl makes
the program work as expected.
Dan
The following patch will make encoding.pm slightly more intuitive --
that is, by 'no encoding' after the module that uses it you can make the
module behave more intuitively. I need to document this somewhere....
> cat EncBar.pm test.pl
package EncBar;
use encoding 'euc-jp';
sub foo { "\xa4\xdb" }
no encoding;
1;
use strict;
require 5.7.3;
use EncBar;
use Devel::Peek;
my $foo = EncBar::foo;
Dump $foo;
use encoding 'euc-jp';
print $foo, "\n";
Dan the Encode Maintainer
diff -du -r1.34 encoding.pm
--- encoding.pm 2002/04/27 19:36:18 1.34
+++ encoding.pm 2002/05/06 09:51:28
@@ -75,8 +75,13 @@
sub unimport{
no warnings;
undef ${^ENCODING};
- binmode(STDIN);
- binmode(STDOUT);
+ if ($HAS_PERLIO){
+ binmode(STDIN, ":raw");
+ binmode(STDOUT, ":raw");
+ }else{
+ binmode(STDIN);
+ binmode(STDOUT);
+ }
if ($INC{"Filter/Util/Call.pm"}){
eval { filter_del() };
}