Perlについての質問箱 39箱目at TECH
Perlについての質問箱 39箱目 - 暇つぶし2ch208:2/2
09/03/03 17:18:54
package main ; #=== 実行 ===
use Data::Dumper ;
use Hoge;
use Hoge2;
my $obj = Hoge->new('hoge') ;
print Dumper $obj ; # ほら丸見えだし、
$obj->setter('fuga') ; # 折角セッタでセットしても
$obj->{data} = 'bar' ; # カプセル化出来てねえよ。
print $obj->getter . qq{\n} ; # ほらね、変えられちゃった
my $obj2 = Hoge2->new('hoge') ;
print Dumper $obj2 ; # bless先がdo{ }で弄り様もねえしなあ。
printf "%s\n", $obj2->getter;
$obj2->setter('fuga') ; # 専用のセッタを用いて漸く変更可能。
printf "%s\n", $obj2->getter;

#Hoge2を以下の様に書いてるサイト(有名所)もあるが、大ポカだから注意!
#package Hoge2;
#my %hash ;
#sub new { my $obj = bless \do{''}, shift ; $hash{ $obj } = shift ; $obj ;}
#sub getter { $hash{ shift } ; }
#sub setter { $hash{ shift } = pop ; return ; }
#sub DESTROY { delete $hash{ shift } ; }
#1;

長文失礼


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch