�ʲ��˿�ȯ����ơ�
- CPAN Ĺ���͡��ॹ�ڡ������ - �ˤݤ��󸦵��
- CPAN ���ؤο����⥸�塼�벦���긢 - id:kazuhooku�Υ���֤���
�ѥå������γ��ؤϤɤ��ޤǿ�������뤫
�����Ĵ�٤뤿��ˡ��ʲ��Υ�����ץȤ��Ѱդ�����
#!/usr/local/bin/perl use strict; use warnings; use Data::Dumper; my $maxdepth = shift || 1024; my $ns = 'P'; sub dummy { 1 } print Dumper \%P::; for my $i ( 1 .. $maxdepth ) { no strict 'refs'; local *{ $ns . '::dummy' } = \&dummy; printf "depth=%d; P::...::dummy=%d\r", $i, &{ $ns . '::dummy' }; $ns .= '::P'; } print "\n"; print Dumper \%P::; eval { no strict 'refs'; warn &{ 'P' . '::' . 'dummy' }; }; warn $@ if $@; system qw/ps ux -p/, $$;
�����Ȥä�Ĵ�٤Ƥߤ�ȡ������ϡ֥��꡼�λ��ĸ¤�ɤ��ޤǤ�פ�OK�Τ褦����20000���餤�ޤǤ�äƤߤơ����ѥ��꡼��600MB��Ķ�����ΤǤ������ݤ����Ť��Ƥ���������ϻ�Ƥ��ʤ���
Perl��̾������(namespace)�ϤɤΤ褦�˼�������Ƥ��뤫
�������餬���ꡣ
���script��⤦���٤褯���Ƥߤ�ȡ��ʤ�����ۤɥ��꡼�򿩤��Τ��������Ǥ���ΤǤϤʤ�������äƤ������̾�����֤��äơ������˰��Ū�˥��֥롼�������Ͽ���Ƥ�������Ǥ��롣����ʤΤ˻��ѥ��꡼�Ϥɤ�ɤ������ƹԤ����ʤ���������
���������ܤ��Ƥ������������Τ���Dumper
�ν��ϡ�������������ܤ���ȡ������ʤ롣
VAR1 = {};�롼�׸�
depth=1024; P::...::dummy=1 $VAR1 = { 'P::' => *{'P::P::'}, 'dummy' => *P::dummy };
����϶��äݤ��ä�%P::
�˲�������äƤ��롣�Ǥ�%P::
�äƤʤ����?
���줬��Symbol Table Hash, ���� stash �������ܸ��Ƥ��̤ꡢStash ��̾����������ѿ��ò¥¡ï¿½ï¿½È¤ï¿½ï¿½ï¿½ hash �ˤʤäƤ��롣�����Ƥ������P::
�Ȥ����������б������ͤ�������̾�����֤ػ��ȤȤʤäƤ��롣�̤θ������򤹤�ȡ�$P::P::P::var
�˰��٤Ǥ⥢����������ȡ�%P::P::P::
�Ȥ���stash�����ǤϤʤ���%P::P::
��%P::
��������������
����Perl�ץ�����ߥ�
Simon Cozens / ����������
[Advanced Perl Programming]
% perl -MData::Dumper -e '$P::P::P::var=1; print Dumper \%P::' $VAR1 = { 'P::' => *{'P::P::'} };
�����ơ����������פʤΤ�������ü�������줿 stash �ϡ��ץ���������̤ޤDz�������ʤ���stash �Ȥ����Τϴؿ�����ޤǴޤ᤿�������Х��ѿ����֤����ʤΤ����餢���̣�����ǤϤ��롣
�����ޤ����ѥå������ѿ����ޤ᤿�������Х��ѿ�����ߤ˻Ȥ��٤��ǤϤʤ���ͳ�ʤΤǤ��롣
����̾�����֤� stash �˴ؤ��Ƥϡ��֥ҥ祦�ܡפ��ȡּ���Perl�ץ�����ߥ󥰡פ˾ܤ������������Perl�����פ������ष���ּ��ѡפˤդ��路���ܤǤ��뤬�������"Advanced Perl Programming"��Advanced�ʤȤ����˴ؤ��ƤϺ��Ǥ⤳�줬���ҤȤ��ƤϺǤ�Advanced������򰷤äƤ���Ȼפ���
Dan the Perl Monger
���Υ֥����˥����Ȥ���ˤ�����������ɬ�פǤ���
��������������
���ε����ˤϵ��ĥ桼�����������Ȥ��Ǥ��ޤ���