最終更新日:2004-11-03

ビギナーのPerlメモ

以下の内容は正確かどうかはわかりません。

Perlのモジュールの入れ方

CPANというモノを使うと楽に入れられます。 CPAN 初級に詳しい説明があります。 CPAN 初級では最初にlynxの確認からやってますがそこは飛ばしてもできました。 だいたい適当にやってたらできると思います。

わたしが何度かやったことからの注意点は次の通りです。

とりあえず入れておきたいモジュール

LWPJcodeはよく使うのでCPANで以下のコマンドを入力してインストールしておくといいと思います。あとCPANも入れるとコマンド履歴が使えるようになって便利になります。

install LWP

install Jcode

install Bundle::CPAN

どのモジュールを入れたらいいか

エラーメッセージが Can't locate hoge.pm in @INC なら install hogeを実行する。 エラーメッセージが Can't locate hoge/bar.pm in @INC なら install hoge::barを実行する。 これでたぶん必要なモジュールをインストールできます。

以前XML::RSSをインストールしたときはPerlのモジュール以外に必要なアプリケーションがあって、ソースからコンパイルしないと駄目だったことがあった気がします。そういった情報がインストール時に表示される英語の中に書いてあることもあるようです。

文字コード変換方法いろいろ

Encodeを使う方法

Perl 5.8以降ではPerlの標準機能として使えるので便利。 パンサーの場合5.8.1が入ってるようなので準備無しで動くと思う。


#!/usr/bin/perl
#replace_selected

use strict;
use Encode qw(from_to);
 
my $inText = $ARGV[1];
&from_to( $inText, 'shiftjis', 'euc-jp' );

my @lines = split( /\r/, $inText );
foreach( @lines )
{
	s/$/。/gi;
}

my $outText = join( "\r", @lines );
&from_to( $outText, 'euc-jp', 'shiftjis' );
print $outText;

Jcodeを使う方法

CPANなどを使って一度Jcodeをインストールするとどっからでも使えるので便利。


#!/usr/bin/perl
#replace_selected

use strict;
use Jcode;
my $inText = $ARGV[1];
$inText= Jcode::convert( $inText, 'euc', 'sjis' );

my @lines = split( /\r/, $inText );
foreach( @lines )
{
	s/$/。/gi;
}

my $outText = join( "\r", @lines );
$outText= Jcode::convert( $outText, 'sjis', 'euc');
print $outText;

jcode.plを使う方法

jcode.plは編集中のファイルと同じフォルダに入れておく必要がある。 ツールスクリプトと同じフォルダではない。


#!/usr/bin/perl
#replace_selected

use strict;
require './jcode.pl';
my $inText = $ARGV[1];
&jcode::convert( \$inText, 'euc', 'sjis' );

my @lines = split( /\r/, $inText );
foreach( @lines )
{
	s/$/。/gi;
}

my $outText = join( "\r", @lines );
&jcode::convert( \$outText, 'sjis', 'euc');
print $outText;


[PR]Ōt̍DlȂ:]Eۂ߰āIN5lp