�ϤƤַ�ͳ��Charsbar���󤫤���Ŧ���ꡣ
[��] not defined �ȥҥ��ɥ�������ΤϤ�����äƤ����ΤǤ�������use warnings�פ�Ȥ��Ϥ᤿�顢 �ٹ� ("Use of uninitialized value ...") ���Ф�褦�ˤʤä��Τǡ� ���Ĥ�����Ƥ���ΤǤ��ġ�
����ޤ�Perl�������Ǥ�TMTOWTDI���к�������Τ����ɡ���������ʤΤǤ����Ǥ����к���ޤȤ�Ƥ����ޤ���
no warnings 'uninitialized';
���줬���ִ���Ū���к��ˤʤ�ޤ���Scopeñ�̤�Í����pragma�ʤΤǡ�
use warnings; sub foo{ no warnings 'uninitialized'; # �����Ͻ�������� } # �����Ͻ������ɬ�פ���
�Ȥʤ�ޤ��������Ȥ��Ƥϡ���������Ƥ��ޤ����ȡ�warnings��trap�����ߤ����ѿ��ޤ��оݤ��鳰���Ƥ��ޤ����Ȥ��������ޤ���
my $arg = shift || default_value
���ϤǻȤ���硢���줬�Ǥ�ݥԥ�顼�����Τ�ޤ���
use warnings; sub foo{ my $required = shift; # ɬ�����ꤷ���ߤ����Τǥǥե�����ͤϻ��ꤷ�ʤ� my $optional = shift || 42; # ���꤬�ʤ��줿��ǥե�����ͤ�Ȥ� # ... }
�伫�ȡ����ֻȤ��Τ�����Ǥ���
sub foo{ my ($required, $optional) = @_: $optional ||= 42; # ... }
�Ǥ�Ʊ�ͤθ��̤���������Ǥ��ޤ��������������μ�ˡ�ˤϰ�����꤬���äơ�����Ū��''��0��Í�����ͤȤ��������ޤǥǥե�����ͤǽ������Ƥ��ޤ��ΤǤ���������ɤ��ˤ�
sub foo{ my ($required, $optional) = @_: $optional = 42 unless defined $optional; }
�Ȥ��ʤ���Фʤ�ʤ����ơ�||=��Ȥ���ˡ������ݤǤ���
���������ɤ�����Τ��Ȥ��������Ϸ빽�Τ��餢�äơ���??�黻�Ҥˤ��褦�ס֤������ספʤɤ��ޤ��ޤʵ���������Perl 5.9��Ƴ�����줿�Τ�//�黻�ҡ������Ȥ���
sub foo{ my ($required, $optional) = @_: $optional //= 42; # ... }
�Ƚ񤱤�褦�ˤʤ�ޤ���
������Hash��Ȥ�
���ȡ��Ƕ������Ƥ����Τ���������Hash��Ȥ��Ȥ�����ˡ��Cookbook��pp.384�Ǥ�Ҳ𤵤�Ƥޤ���
sub foo{ my %arg = ( optional => 42, @_, # �������ݥ���� ); }
�Ǹ��@_�����뤳�Ȥǡ�Ʊ��key�����ä����ˤϤ��줬�����Ǿ�ñ¤¤ï¿½ï¿½ï¿½ï¿½ï¤±ï¿½Ç¤ï¿½ï¿½ï¿½Hash�ˤ��뤳�Ȥˤ�ꡢ���������Ʊ�ˤʤ�ʤɡ�������¿�����ˤ�����Í������ˡ�ʤΤǤ�����Performance�ˤϤ������ٶ����ޤ������դ˰��������ʤ���Τ��Ф��ƤϸƤӽФ�����
foo('bar', 1);
�ǺѤ�Ǥ�����Τ���
foo(required => 'bar', optional => 1);
�ȤʤäƤ��ޤ��Τ�����Ǥ���
Perl6�ǤϤɤ��ʤ뤫?
Perl6�Ǥϡ��������θ������Ƥ����Ȥ����ɤꤷ�������ˤʤ�ޤ���
sub foo($required, $?optional = 42){ # .... }
�Ƚñ¤¯¤ï¿½ï¿½ï¿½ï¿½Ç¡ï¿½ï¿½åµï¿½Î¤ï¿½ï¿½ï¿½ï¿½È¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Æ¤È¤Ã¤ï¿½ï¿½Î¤ï¿½Æ±ï¿½ï¿½ï¿½Ë¤Ê¤ï¿½Þ¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ç¡ï¿½
foo() # compile-time error foo('bar') # ok foo('bar', 1); # ok foo(required => 'bar', optional => 1); # ok
�Ȥʤ뤫�餦�줷���ǤϤ���ޤ��󤫡�
Dan the Uninitialized Man
�Τ���n��ȴ���Ƥޤ��������꤬�Ȥ��������ޤ���
Dan the Reinitialized Typo Generator