• ベストアンサー

Perlでテキスト処理をしたいのですが・・・

 はじめて質問します。  私は印刷会社に勤務しているのですが、職務上テキスト処理を行う事が多いので、テキストに強いソフトはないか調べていた所、Perlを見つけ、今勉強中のところです。  初めはActivePerlの5.8.3を使っていたのですが、まだシフトJISに問題があるようで、文字化けをして使い物にならないので、Jperlに最近変えました。  一様Jperlは、文字化けをしないか、総ての文字を調べました。結果は、Perlのような文字化けは無かったですが、まだ、実際に仕事に使えるものなのか、不安です。   ========================== (質問) (1)Perlにはいろいろ種類があるようなのですが、どれが一番日本語のテキスト処理に向いているのでしょうか?Jperl以外にありましたら、教えてください。 (2)Jperlの今のバージョンより最新バージョンはありますか?教えて下さい。 (3)JperlにもActivePerlのように、文字がおかしくなるようなバグがあるのでしょうか? ========================== 環境はWindous2000 Jperl(5.005_03) 文字はSjis ご解答お願いしますm(..)m

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

  • ベストアンサー
回答No.1

>>初めはActivePerlの5.8.3を使っていたのですが、 >>まだシフトJISに問題があるようで、 >>文字化けをして使い物にならないので、Jperlに最近変えました。 基本的に、機種依存の文字コードを処理する事は別問題なのでPerlのバグということではありません。 >>(3)JperlにもActivePerlのように、 >>文字がおかしくなるようなバグがあるのでしょうか? バグではないですが、一部正しく処理できない事はあります。 Jperlは、楽に文字コード処理をしたいと 言うことで出来たPerlですので漢字処理は比較的 うまくやってくれます<ActivePerlは別のJcode.plが必要となったりしますので・・・逆に言うと 追加モジュールを組めば同じ事です

Chiaki---
質問者

補足

Aruku-20030515さん ありがとうございます。 Perlの文字化けはバグではなかったんですね、わかりました(^_^) >>Jperlも一部正しく処理できない とありますが、具体的にはどういった事ですか?

その他の回答 (2)

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

(1)5.8以上のバージョンでは、日本語を扱えるようになりました。 質問文の内容での文字化けは、他の回答者も答えられているようなshift_jisに起因するものだと思います。 プログラムの最初に use encoding 'shiftjis'; とすることで、入力ファイルがシフトJISであることを認識し、内部的にunicodeで処理するようになるので、大丈夫です。 (2)(1)でも述べたように5.8以上で標準的に日本語(ユニコードによるので日本語とは限らない)が扱えるようになったので、今後バージョンアップはされなくなると思います。

Chiaki---
質問者

お礼

返答ありがとうございます! さっそく試したいと思います。

noname#25358
noname#25358
回答No.2

 Perl の文字化け現象は、一部の文字がエスケープシーケンス(¥)を使用してしまっており、それを Perl がシステムコードと誤解することで発生します。  よって(3)に関しては「ノー」といえます。  ただし、一般に JPerl と呼ばれているのは日本語に対応した Perl プログラムの総称で、特定のソフトウェアを指す言葉ではありません(違うソフトがそれぞれ個別に JPerl を名乗りあってるからです)。  よって、(2)に関しては明確な返答ができません。  Perl が文章解析に強いと言われているのは、 ・初心者の登竜門である文字解析技術の訓練に気軽に使える ・正規表現が気軽に使える  という2点が大きいところです。  よって、言語としてのレベルが高くてよく、なおかつ正規表現をさほど使わないのであれば、C言語とかでもご希望の処理は可能です。

Chiaki---
質問者

お礼

返答ありがとうございます! 正規表現は結構使うので、やっぱりPerlですかね・・。でも、どうにかPerlとうまくやっていけそうな気がしてきました!文字化けも大丈夫そうなので。 ありがとうございました。

関連するQ&A