Perl 実験室

ここは、Perl をあまりよく知らない自分のためのくだらない当たり前な情報の保存場所


クラス

クラスの定義

#aaa/bbb/Class.pm
package aaa::bbb::Class;

# コンストラクタ
sub new {
	my $class = shift;
	my $self  = {};
	
	return bless $self,$class;
}

# メソッド
sub a {
	$self = shift;
	....
}

1; # 忘れちゃだめよ

継承

#aaa/bbb/ClassA.pm
package aaa::bbb::ClassA;

# コンストラクタ
sub new {
	my $class = shift;
	my $self  = {};
	
	return bless $self,$class;
}

# メソッド
sub a {
	$self = shift;
	....
}

1; # 忘れちゃだめよ
#aaa/bbb/ClassB.pm
package aaa::bbb::ClassB;

use aaa::bbb::ClassA;

# コンストラクタ
sub new {
	my $class = shift;
	my $self  = new ClassA;
	
	return bless $self,$class;
}

# メソッド
sub b {
	$self = shift;
	....
}

1; # 忘れちゃだめよ

他のクラスを呼ぶ方法

ファイル・ディレクトリ構成

  • カレントディレクトリ、もしくはライブラリパス(詳細不明)を起点にモジュールを配置(Javaみたいに)
package aaa:bbb:Class;

この場合

./aaa/bbb/Class.pm

これが呼ばれる

使用方法

  • 生成
use aaa::bbb::Class;
my $c = new aaa::bbb::Class();

クラス内でのメンバの呼び方

$sub a {
    $self = shift;
    $arg1 = shift;
    $self->b($arg1); # これが呼出
}

正規表現

正規表現への変数

正規表現の文字列は変数を使用可能

my $reg = "[a-c]{2,6}";
my $test = "ffaaccddee";
$test =~ /($reg)/;
print $1."\n";

出力

> aacc

正規表現を使った解析

$_ =~ /(....)(..)(..)/;
my $year  = $1;
my $month = $2;
my $date  = $3;

メモ書き

LastModified:2004/06/14 10:19.11

トップ 差分 一覧 ソース 検索 RSS ログイン