frei

旧「anney's room」からブログ「frei」だけ引っ越し&残しました

で、結局。

Moose少ーしだけいじってみた。

重い…orz。

・Person.pm

package Person;

use Moose;

has name => (

is => 'rw',

isa => 'Str'

);

has age => (is => 'rw');

1;

・test.pl

#!/usr/bin/perl -w

use strict;

use Person;

my $objPerson = Person->new();

$objPerson->name('anigon');

print $objPerson->name."\n";

$objPerson->{'name'} = 'ANIGON'; # 例のごとく、外部からメンバ変数の汚染を試みてみた

print $objPerson->name."\n";

exit;

で、test.pl の実行結果。

anigon

ANIGON

name が上書きされてますなぁ…。

別にOOPで書く時に楽になるようにしただけで、

中身は特に強化した訳じゃないから、そういうもんなんだなぁ。

それにしても、ものすごく重い…orz

私の使い方が悪いのかなぁ?

一応 DProf したら、こんな事に。

Total Elapsed Time = 1.465469 Seconds

User+System Time = 1.415469 Seconds

Exclusive Times

%Time ExclSec CumulS #Calls sec/call Csec/c Name

17.0 0.241 1.301 19 0.0127 0.0685 Moose::BEGIN

11.1 0.158 0.479 11 0.0144 0.0435 Class::MOP::BEGIN

8.83 0.125 0.115 462 0.0003 0.0002 Class::MOP::Instance::bless_instance_structure

5.44 0.077 0.108 23 0.0033 0.0047 Moose::Util::TypeConstraints::BEGIN

5.16 0.073 0.104 33 0.0022 0.0031 base::import

4.45 0.063 0.063 509 0.0001 0.0001 MRO::Compat::__get_linear_isa_dfs

4.45 0.063 0.161 206 0.0003 0.0008 Class::MOP::Class::add_method

4.17 0.059 0.169 13 0.0045 0.0130 Class::MOP::Class::BEGIN

3.89 0.055 0.172 9 0.0061 0.0191 Moose::Meta::Attribute::BEGIN

3.46 0.049 0.077 7 0.0070 0.0110 Data::OptList::BEGIN

3.46 0.049 0.044 11 0.0044 0.0040 Moose::Meta::Class::BEGIN

2.83 0.040 0.049 3 0.0132 0.0163 Sub::Identify::BEGIN

2.83 0.040 0.015 41 0.0010 0.0004 Class::MOP::Instance::new

2.68 0.038 0.216 6 0.0064 0.0360 Moose::Meta::TypeCoercion::BEGIN

2.68 0.038 0.038 58 0.0007 0.0007 Exporter::import

-t で見てみると 38726行の結果が出てきて、

(つまり 38726回どっかしらの関数が呼ばれてて)

そっかー、そうなのかー…って。。。

before や after は、ほんと簡単に挿入出来ていいんだけどねぇ…。