Zazelです。
=== kbk@... (Bruce.) さんが書かれた
=== <20050905032931.3D4A12161A8@...> にて
> > > えーと、use encoding の影響範囲は スクリプト STDIN STDOUT で
> > > utf8変換されると理解しているのですが、認識合ってますか?
> > > だから <> を使うと危険なのは当り前というか。
> >
> > あってると思います。
>
> 気になったので調べてなおしてみました。
>
> 普通にopenしたストリームにも影響するようです。
> 逆に、use encoding していて、あるストリームは無変換で取り出したい
> というときにはちと面倒なことになりそうです。
chomp() のせいだと思います。
| If the "encoding" pragma is in scope then the lengths returned
| are calculated from the length of $/ in Unicode characters,
| which is not always the same as the length of $/ in the native
| encoding.
chompを呼ばないときは無変換で格納されているのがみえます。
use encoding 'sjis';
open my $file1, '<', 'sjis.txt' or die;
while (<$file1>) {
#chomp;
print((join " ", map {sprintf "%02X", $_} unpack "C*", $_), "\n");
print length($_), ":$_\n";
}
close $file1;
(* SEKI Masatoshi // Zazel *)
(* Would you hold my hand? Softly, let's linger. *)