パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

現代的な Perl を再習得する方法は?」記事へのコメント

  • by Anonymous Coward

    404 Not Found [livedoor.jp] 」にはモダン Perl の書き方やモダン Perl の良書紹介エントリがたくさんあるので、まずはここを見るのが筋だと思う。

    # dankogai の Perl 至上主義は老害と言ってもいいと思うので AC

    • by Anonymous Coward

      404 Blog Not Found : perl - use encoding; #は黒歴史 [livedoor.jp]

      10年ぐらい前にPerlに触ったとき、Shift_JISの第2バイトが"\x5C"だとバックスラッシュに解釈されてしまうというのを知ったんだけど、未だにそうなんですね。
      RubyやPythonみたいにスクリプトのエンコーディングを指定可能にするのじゃなく、「UTF-8以外使うな」とするのがPerl流のモダンなのか……。
      それ、モダンじゃなくて単なる「手抜き」じゃないのかな?

      • by Anonymous Coward

        ちゃんと読みなさいな
        エンコーディング指定も出来るけれど、UTF-8で書いた方が問題は少ないって話ですよ
        RubyだってShift_JISで書けば、UTF-8では発生しない問題が起きるでしょう?

        そもそもShift_JISがモダンなエンコーディングとは言えないんだから仕方ない
        UTF-8は、少なくともShift_JISよりはモダンなはずだ

        • by Anonymous Coward

          なんて乱暴な……。
          RubyもPythonも、スクリプトの頭で

          # coding: Shift_JIS

          と宣言しておけば、ソースがShift_JISで書かれているとインタプリタが解釈するんですよ。
          指定しておけば、"表"の第2バイトがバックスラッシュとみなされることなんてありえません。
          デフォルトエンコーディング(RubyとPython2.xはUS-ASCII、Python3.0はUTF-8だったかな)以外のエンコーディングでスクリプトが記述可能という仕組みが、インタプリタに実装されているんです。

          ライブラリの対応状況とか文字列の処理上の問題はこの際関係ないです。
          エンコーディングの優劣も的外れ。何を言っているのやら。

          • by Anonymous Coward on 2009年06月10日 15時47分 (#1583956)

            Rubyはシェバングに-Kオプション

            #! /usr/local/bin/ruby -Ks

            Pythonはシェバングの次の行辺りで

            # -*- coding: shift-jis -*-

            Windowsなら

            # -*- coding: cp932 -*-

            Perlはライブラリの読み込みの所辺りで

            use encoding qw(Shift_JIS);
            use open qw(:encoding(Shift_JIS) :std);

            Windowsなら

            use encoding qw(cp932);
            use open qw(:encoding(cp932) :std);

            PHPは……6からICUが搭載されますので、それまでお待ちください。

            だいたい、こんな感じかな。

            親コメント
            • Re:各LLの日本語対応 (スコア:1, すばらしい洞察)

              by Anonymous Coward on 2009年06月10日 16時01分 (#1583965)

              ruby の引数での指定方法では、ライブラリのキャラクタセットをどうするんだろう。

              python の場合はソースごとに個別の指定が出来るので、モジュールA を UTF-8、モジュールB を EUC-JP、自分のソースを Shift-JIS でコーディング出来るんだよね。

              ruby に戻ると、複数のモジュールのキャラクタセットを合わせないと駄目だと思うんだけど、それって UTF-8 縛りを求めてる perl とどこが違うの?と思う。

              親コメント
            • by Anonymous Coward
              いまどきsjisだけはやめてくれ・・・

              use stirct;
              use warnings;
              use utf8;
              binmode STDOUT => ':utf8';

              Windowsなら

              use utf8;
              binmode STDOUT => ':encoding(cp932)';

ソースを見ろ -- ある4桁UID

処理中...