�Ȥ����������Τʤ��Ϥ��α��ò�����������Ȥߤ����Ǥ�ȯ������Ƥ���ΤǤ���

�ӥ������Τۤ��ۤ� Kansai.pm��8��ߡ��ƥ��󥰤˹ԤäƤ��ޤ���@��¤����
�����ơ�Perl�Υ��֥������Ȼظ��ˤ� ���ò�����������ȤߤϤʤ�

���Ĥ��񤳤��ȻפäƤ������ɡ����礦�ɤ�������ʤΤǡ�

�����Ǥ���Ȥ��ơ�name,uri�Ȥ�����ĤΥ��󥹥����ѿ�����ĥ��֥������Ȥ�������Ƥߤޤ���

InsideOut.pm
{
    package InsideOut;
    use strict;
    use warnings;
    my %objects;
    sub new {
        my $class = shift;
        bless \eval{ my $scalar }, $class;
    }
    sub DESTROY{
        my $self = shift;
        delete $objects{$self+0};
    }
    sub name{
       my $self = shift;
       $objects{$self+0}{name} = shift if @_;
       $objects{$self+0}{name};
    }
    sub uri{
       my $self = shift;
       $objects{$self+0}{uri} = shift if @_;
       $objects{$self+0}{uri};
    }
    1;
}
insideout.pl
use strict;
use warnings;
use InsideOut;
use Data::Dumper;

my $o = InsideOut->new();
$o->name("dankogai");
$o->uri("http://blog.livedoor.jp/dankogai/");
print $o->name, ",", $o->uri, "\n";
print Dumper $o;

�����ǡ�insideout.pl��¹Ԥ��Ƥߤ�ȡ��ʲ��Τ褦�ˤʤ�ޤ���

% perl insideout.pl
dankogai,http://blog.livedoor.jp/dankogai/
$VAR1 = bless( do{\(my $o = undef)}, 'InsideOut' );

���Ƥ��̤ꡢ�Τ���accessor���̤������ˤϡ֥��󥿥��ѿ��פϥ��������Ǥ���Τˡ����֥������Ȥ���Ȥ϶��äݤǤ���

�����ǡ�InsideOut.pm�λ��Ȥߤ�褯���Ƥߤޤ������֥������Ȥ϶��äݤ�blessed scalar reference�Ǥ���Perl�ξ�硢���֥������Ȥ�blessed reference�Ǥ���в��Ǥ�OK�ʤΤǡ��������Ƥ��ޤ���

����accessor�򸫤Ƥߤޤ��礦��$objects{$self+0}{name}�Ȥϰ��Τʤ�Ǥ��礦?$self+0�����ܤ��Ƥߤޤ��礦������ϰ��Τʤ�Ǥ��礦��?��ñ�ʥ��֥������Ȥ��äƼ¸����Ƥޤ��礦��

% perl -MCGI -le '$q=CGI->new; printf "%s,%d,0x%x\n", $q, $q+0, $q+0'
CGI=HASH(0x1801180),25170304,0x1801180

�����ʤΤǤ�����ե���󥹤���ͥ���ƥ����Ȥ�ɾ������ȡ����ɥ쥹���֤äƤ��ޤ�������ϳƥ�ե���󥹤˸�ͭ�ʤΤǡ����֥������Ȥ�ID�ˤʤ�ޤ���accessor�Ϥ���ID�򥭡��ˤ����ϥå��塢%objects�˥����������Ƥ��ޤ���

�Ȥ�����������%objects�ϥ쥭�������ѿ��Ǥ���InsideOut.pm�ΰ��ֳ�¦��{}�γ�������������������Ǥ��ʤ��ΤǤ���accessor���̤���������ޤ��󡣤���ǡ�Perl 5�ǤⱣ�ò�����ǽ�Ǥ��뤳�Ȥ�������ޤ�����

����object��������äƤ���ǡ��������ˤ��롣����Τ��������Ǽ������줿���֥������Ȥ�Inside-Out Object�ȸƤӤޤ���

���α�դ��ʤ���Фʤ�ʤ��Τϡ����������ξ�硢DESTROY��ɬ���������Ƥ���ɬ�פ�����ޤ����ǡ����ϥ��֥������Ȥ���ˤϤʤ��Τǡ����֥������Ȥ��˴������ݤˡ������ɳ�Ť����ǡ����ϡ�%objects�������륹���������DESTROY�Ǻ�����Ƥ��ɬ�פ�����ΤǤ���

����������Damian Conway�Τ���������ǡ����줬�󤸤��ब���������Τ�Class::Std�Ǥ���Inside-Out Object�ˤޤĤ�����ؤ򡢤ޤȤ�����ݤߤƤ����Ȥ�����ΤǤ���̾����Class::Std�ȤʤäƤ���Ȥ��������Hubris�򴶤����ˤϤ����ޤ���

�ܤ����ϡ���Ǥ�Perl Best Practices�������졣

Dan the Inside-Out Blogger