Perl の研究

2004.08.14

ホーム
上へ
Perl(古いドキュメント)

[2003.02.11] ActiveStateで,Perl 5.8.0公開

遅れた情報ですが,ActiveStateで,ActivePerl 5.8.0.804が公開されていますね。全く弄っていません。ちょっとWindowsでのPerlを使うことが少なくなっていますね。でも,IISで,JScriptとかVBScriptを使っていると,やっぱりPerlScriptの方が良いと感じます。その辺を書きたいと思うのだけど,Linuxで動かないツールとかあってそっちに時間を取られている。あと,仕事も忙しいし。もっと,良い時間の使い方を考えないとなぁ。

 

[2002.07.27] Encoding でShift JISサポート?

C:\>perldoc encoding

NAME
encoding - allows you to write your script in non-ascii or non-utf8

SYNOPSIS
use encoding "greek"; # Perl like Greek to you?
use encoding "euc-jp"; # Jperl!

# or you can even do this if your shell supports your native encoding

perl -Mencoding=latin2 -e '...' # Feeling centrally European?
perl -Mencoding=euc-kr -e '...' # Or Korean?

とあるので,"perl -Mencoding=shiftjis {スクリプト}"を試してはいるのだけど,ちょっとうまくいかないかなぁ。思った結果にならないところがあるかなぁ。

"あい表えお" =~ /い(.)え/ ; print "$1\n";

上の例を通すと「表」とは出てこないなぁ。他におまじないが必要なのかな。

 

[2002.07.21] Perl 5.8.0 が出ました

小飼弾氏のJcode.pmの発展系が,Encodeモジュールとしてマージされています。早速コンパイルしてみてインストールしてみたら,30MBもある。(圧縮してみても,10MB(バイナリ 7MB + ドキュメント 3MB。参考:ファイル名一覧)そのうち,ActiveStateで,正式な(?)バイナリが配布されると思いますが,ここにも VisualStdio.NETのC++7.0でコンパイルしたモノが置いてあるので,お試ししたい方はどうぞ。ソースは,CPANから配布されたモノをそのまま,nmake installしただけです。(解凍したら,C:\にperlというフォルダをコピーするだけ)

Encodeに合わせ,PerlIOが拡張され,以下のコードで文字コード変換が出来るようになっています。

$infile="t.txt" ;       # 入力ファイル
$outfile="out.txt" ;    # 出力ファイル

# via PerlIO
open my $in, "<:encoding(shiftjis)", $infile or die "infile: $infile" ;
open my $out, ">:encoding(euc-jp)", $outfile or die "Error: outfile: $outfile" ;
while(<$in>){ print $out $_; } # via from_to
 

もっとよく調べないと分からないけど,日本語の処理(国際化対応と言うべきか)が標準に含まれるようになったのは嬉しい。気になるのは,ASCII前提で記述されたPerl Scriptがそのまま,日本語でも使えるかどうか(Windowsの場合,ディレクトリ名に「表」とかあるとうまくいかないケースがあるなど)という点です。もっとよくドキュメントを読まないとな。