• ベストアンサー

Perl5.8について詳しく書かれている書籍

最近Perl5.8にし、文字コードをUTF8をベースに使うようになりました。 以前は、5.6を使っていたので、文字コードについては、あまり意識せず、 出力時のみ気を使っていました。Perl5.8からPerlIOというものがあり、 いまいち理解しづらいのですが、PerlIOについて詳しく書かれている書籍(5.8以上に特化) を探しているのですが、お薦めがございました ら是非お教えください。 最悪、洋書でも構いません。 IO::Fileを使って、入力文字コードは euc-jpで、出力文字コードはシフトJISにする 設定方法がしりたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • kabaokaba
  • ベストアンサー率51% (724/1416)
回答No.1

とりあえずCPANから,書籍の案内を探すとか オライリーのサイトを見るとか >IO::Fileを使って、入力文字コードは euc-jpで、出力文字コードはシフトJISにする これはオンラインドキュメントの encodingモジュールとかそのあたり 洋書でよいならこのドキュメントでもOKでしょう. ところで5.8の和書ってあるんでしょうか #らくだ,リャマは5.6でしたっけ 知り合いの某コンピュータ出版社の編集さんに 聞いたら,5.8の書籍の企画はないとか いってたくらいで(^^;;;

その他の回答 (3)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

>>:encoding(utf8)では正しく変換してましたが、 >>:encoding(utf-8)では正しく変換している部分はかなりありますが、一部正しく変換しておりません。 ちょっとわからないです。 というか、UTF8ベースで書いている(use encoding 'UTF-8')時には、出力のencodeは、必要ない(デフォルトでUTF8で出力される)です。 >utf8, utf-8と似たような表現方法がありましが、 >大違いなのでしょうか? 使っているモジュールでちょっとちがうのかもしれません。 私には、ちょっと違いはわかりません。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

>:encoding() プラグマ?を使うんですね。 「:encoding()」 は、レイヤーといいます。いわゆるPerlIOです。PerlIOレイヤー。 他には、 :unix :crlf :raw とか色々のレイヤーがあります。重複指定もできます。 例えば :raw:encoding(shiftjis) とか binmode STDOUT => ":raw:encoding(UTF-16LE)"; とか use encoding 'utf8' STDOUT => ":encoding(shifitjis)"; みたいなこともできます。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>IO::Fileを使って、入力文字コードは euc-jpで、出力文字コードはシフトJISにする こんな感じ --------------------------- use encoding 'UTF-8'; use IO::File; $in = new IO::File; $out = new IO::File; $in->open("EUC.TXT", "<:encoding(euc-jp)"); $out->open("SJIS.TXT", ">:encoding(shiftjis)"); while(<$in>){ print $out $_; } $out->close; $in->close; -------------------------------------------------- また、IO::Fileを使わないで use encoding 'UTF-8'; open(IN, "<:encoding(euc-jp)", "EUC.TXT"); open(OUT,">:encoding(shiftjis)","SJIS.TXT"); while(<IN>){ print OUT; } close(OUT); close(IN); でいいです。同じ意味。

kounesi
質問者

補足

なるほど、 :encoding() プラグマ?を使うんですね。 この例題を使わせて頂いて、以下の2つを確めた所 >:encoding(utf8)では正しく変換してましたが、 >:encoding(utf-8)では正しく変換している部分はかなりありますが、一部正しく変換しておりません。 utf8, utf-8と似たような表現方法がありましが、 大違いなのでしょうか?

関連するQ&A

専門家に質問してみよう