Perl についてのメモ

[Perl とは] [Perl の文献] [ライブラリ] [移植] [リンク] [Tips]

[メモのページへ戻る]


Perl とは

Perl = Practical Extraction and Report Language の略. これには何か色々面白い話があるので,ナットシェルの 「Programming Perl(邦訳:Perl プログラミング,ソフトバンク)」 は必読.

パターンマッチのための正規表現に優れ, 文字処理に適している. スクリプト言語なので書いて即実行できる. が,インタープリタのため多少遅い(コンパイル可能ではあるが). 文法は C に類似. 最近 Web の普及にともない,CGI 記述言語として脚光を浴びている.


Perl の文献

4のころの文献なのでかなり古い.


ライブラリ


移植


リンク


Tips

Perlのクラス即席作成方法。(2002-11-16:結城さんよりバグ指摘あり。多謝)

ちなみに以下のmyはlocalと同じで変数を局所変数として宣言するためのものです。

1. クラス名のパッケージを作りましょう。

MyClass.pmというファイルを以下のように作ります。

package MyClass; # パッケージ宣言
1; # 最終行のおまじない
2. コンストラクタnewを作りましょう。

ここで、$obj = new MyClass(arg1, ..., argn);は、MyClass::new(MyClass, arg1, ..., argn)と等価であることに注意。

package MyClass;

sub new {
  my ($class, $arg1, ..., $argn) = @_; # 引数を整理
  my $self = {}; # オブジェクトとなるハッシュの種を作ってそのリファレンスを取る
  $self->{arg1_} = $arg1; # メンバ変数arg1_設定
  ...
  $self->{argn_} = $argn; # メンバ変数argn_設定
  bless $self, $class; # 神の祝福をもって世界に旅立つ?($classはサブクラス化のため)
  $self; # 関数の最終行の値が関数の返り値
}

1;
3. メンバ関数を追加していきましょう。

ここで、$obj->method1(arg1, ..., argn)は、MyClass::method1($obj, arg1, ..., argn)と等価であることに注意。

package MyClass;

sub new {
  my ($class, $arg1, ..., $argn) = @_;
  my $self = {};
  $self->{arg1_} = $arg1;
  ...
  $self->{argn_} = $argn;
  bless $self;
  $self;
}

sub method1 {
  my ($self, $arg1, ..., $argn) = @_;
  # 任意の処理
 $self->{arg1_} = $arg1;
  # などなど
}

1;

あとは繰り返し。おしまい。


[メモのページへ戻る]