Perl でオブジェクト指向? | - 2004/05/09
- 久々にPerlいじってみた.オブジェクト指向まではいかないけど,知ったこと...
・サブルーチン $result = &add(5,3); sub add{ return $_[0] + $_[1]; } なんてすれば8が返される.引数は@_($_[0],$[1],,,)にはいる. ・パッケージ package asdf; sub hoge{ ... }
なんてものをつくると,名前空間を指定できて &asdf::hoge か &asdf'hoge で呼び出せる.'は古いらしい. 変数も同様に $asdf::a とか.指定しないと,package main となる. ・スコープ 普通変数を作るとグローバル変数になるけどスコープにしたいときは my $abc; local($abc); みたいにする. for (my $i = 0;$i < 10 ;$i++){ print $i; } なんて使い方もあり.
今回ログ解析をモジュール(ライブラリ?)にしたくて,こんなことやってたんだけど,他ファイルでasdf.pl とか作った場合は,require 'asdf.pl';すればいい.use ってのもあるけどよくわかんね... ただし,最後に1;をつけてやること.読込のチェックらしい.
で,どのへんがオブジェクト指向かっていうと...要するにパッケージがクラス. でもprivateがあるわけじゃないからカプセル化はかなりもろい. んで,return じゃなく bless を使うことでオブジェクト参照を返すことが出来て,コンストラクタが作れるらしい. 多重継承なんかもできる.みたい.
Effective Perlとかもあるので読んでみたら・・・いいのかな.
|
|