Jcodeのメモと久しぶりのPerlデビュー
実は、初めてのPerlのエントリー。つか、普段からPerl使わないし。でも、使っているレンタルサーバでは、CGIの使用は許されているので、Perlを使ってみることにする。PHPはダメ動かなさそう。
つか、そもそもCGIが動くと聞いているだけで、厳密にはperlだけとは限らないような気もするが、rubyでもCでもpythonでも、PHPでも、shでも、他の言語でもCGIスクリプトを書けばいいだけだが。
ええと、話がそれた。
ちょっと今簡単なスクリプトを書いているのよ。で、PHPでやれば速攻なのだが、ちょっとブログに組み込もうかな、と思って、あと、ちょっと気分転換をするためにPerlをいじっちゃったりしているわけ。で、私も日本人なので、日本語を使用せなあかんのよ。むかーし、Perlを使っていたころは、jcode.plを使用していたけど、最近は、Perlな世界にもOOPが流行りつつあるようで、CPANモジュールのJcodeを使用してみた。
まだ、深く読んでいないけど、ドキュメントは以下の通り。
Jcodel
でね。
コンストラクタで、
$j = Jcode->new($str [, $icode]);
とか書いてあるんだけど、これって$icodeを書かなくてもいいってことだから、書かなかったのよ。そしたら、なんか特定の文字で、文字化けしているんだね。
ソースでは、
my $phrase = Jcode->new($params{'phrase'})->euc;
って感じでやってたら、「よう」とか、難しい漢字とか化けちゃって変換されないの。まぁ、PHPのmb_detect_encodingのも文字コードの判別にバグがあるから、こっちもあるのかな、って思って少しばかりあきらめつつ、ドキュメント読んでみたら、どの文字コードからということで、$icodeを指定できたので、次のように変更したらできた。
my $phrase = Jcode->new($params{'phrase'},'utf8')->euc;
うーん。なるほどね。自動判別だとばかり思っていたけど、ちゃんと書かないといけないのね。
しかし、久しぶりにPerlを触るとなんだかめんどくさいね。PHPに慣れちゃって。昔なんて汚いコード書いていてCPANなんて使ったことなかったけど、せっかくライブラリあるし、自分で書くより洗練されているから使った方がいいよね。でも、なんだかPHPのPEARとPECLの両方の側面を持っていて、ちょっと嫌。Pure Perlで書かれたものでないとインストールで躓いちゃうから。
自分のサーバならインストール楽だけど、レンタルサーバだからインストールできなくて、FTPしか使えないかし。。。いくつかは、Pure Perlで書かれていて、パスが通るところに置けば動くみたいだけど、結構使いたいなぁ、と思うのは、ダメだったりするのだ。つーか、PHPのPEARだったら、インクルードパスに全部置いちゃえば、そこで使えただけに、ちょっとCPAN使いにくいなぁ、と思ってみる。ほとんど使ってないから、知らないだけかも。
なんかいろいろ調べてて、perlで定数ってどう書くのかな、って検索してたら見つけた。
Perl メモ
定数関数、シンボルテーブル、constants.pmとあったけど、まぁ、使うなら定数関数か。。。
sub GIVEN_NAME {'shin'}
みたいな感じだって。きもっ!subってのが、なんか気になる。。。
ちなみに、勢いでオブジェクト指向で書くのやっちゃった。packageの中で普通に関数を作ればいいだけなのね。
blessでハッシュのリファレンスを返すところは、なんか変な感じがしたが。

