=encoding euc-jp =head1 NAME =begin original perltrap - Perl traps for the unwary =end original perltrap - �����դˤ�� Perl ��� =head1 DESCRIPTION =begin original The biggest trap of all is forgetting to C or use the B<-w> switch; see L and L. The second biggest trap is not making your entire program runnable under C. The third biggest trap is not reading the list of changes in this version of Perl; see L. =end original �Ǥ��礭��櫤Ȥϡ�C ���뤤�� B<-w> �����å���Ȥ��Τ� ˺��Ƥ��ޤ��Ȥ������ȤǤ�; L �� L �� ���Ȥ��Ƥ��������� �����ܤ��礭��櫤Ȥϡ����ʤ��Υץ���������Τ� C �θ��� �¹Ԥ��ʤ��Ȥ������ȤǤ��� �����ܤ�櫤ϡ����ΥС������� Perl �Ǥ��ѹ������ɤޤʤ��Ȥ������ȤǤ�; L �򻲾Ȥ��Ƥ��������� =head2 Awk Traps (awk ���) =begin original Accustomed B users should take special note of the following: =end original B �˴��줿���ϡ��ʲ��Τ褦�ʤ��Ȥ��ä����դ��Ƥ�������: =over 4 =item * =begin original A Perl program executes only once, not once for each input line. You can do an implicit loop with C<-n> or C<-p>. =end original Perl �Υץ������ϡ�1 �٤����¹Ԥ���ޤ�; ���Ϲ���ǤϤ���ޤ��� C<-n> �� C<-p> ��Ȥäư��ۤΥ롼�פ�Ȥ��ޤ��� =item * =begin original The English module, loaded via =end original English�⥸�塼��� use English; =begin original allows you to refer to special variables (like C<$/>) with names (like $RS), as though they were in B; see L for details. =end original �Τ褦�ˤ��ƥ����ɤ���С�B �Ǥ����Ǥ��ä��褦�� (C<$/> �Τ褦��)�ü��ѿ���($RS �Τ褦��)̾���ǻ��Ȥ��뤳�Ȥ��Ǥ��ޤ�; �ܤ����� L �򻲾Ȥ��Ƥ��������� =item * =begin original Semicolons are required after all simple statements in Perl (except at the end of a block). Newline is not a statement delimiter. =end original Perl �Ǥϡ����٤Ƥ�ñ��ʸ(simple statement)�������˥��ߥ�����ɬ�פǤ� (�֥��å��κǸ���֤��줿�Ȥ�������ޤ�)�� ���Ԥ�ʸ�ζ��ڤ�ȤϤʤ�ޤ��� =item * =begin original Curly brackets are required on Cs and Cs. =end original C �� C �Ǥ��椫�ä���ɬ�פǤ��� =item * =begin original Variables begin with "$", "@" or "%" in Perl. =end original Perl �Ǥϡ��ѿ��� "$" �� "@" �� "%" �ǻϤޤ�ޤ��� =item * =begin original Arrays index from 0. Likewise string positions in substr() and index(). =end original �����ź������ 0 ����Ϥޤ�ޤ��� substr() �� index() �Ǥ�ʸ����ΰ��֤�Ʊ�ͤǤ��� =item * =begin original You have to decide whether your array has numeric or string indices. =end original �����ź���������ͤǤ��뤫��ʸ����Ǥ��뤫����ʤ���Фʤ�ޤ��� =item * =begin original Hash values do not spring into existence upon mere reference. =end original �ϥå���(Ϣ������)���ͤϡ�ñ�˻��Ȥ�������Ǥ�¸�ߤ��뤳�Ȥˤʤ�ޤ��� =item * =begin original You have to decide whether you want to use string or numeric comparisons. =end original ��Ӥ�ʸ����ˤ�äƹԤ��Τ������ͤˤ�äƹԤ��Τ��� ���ʤ���Фʤ�ޤ��� =item * =begin original Reading an input line does not split it for you. You get to split it to an array yourself. And the split() operator has different arguments than B's. =end original ���Ϥ��ɤ߹�������Ǥ� split �ϹԤ��ޤ��� ����ؤ� split �ϼ�ʬ�ǹԤ��ޤ��� �ޤ���split() �黻�Ҥΰ����� B �Τ�ΤȰۤʤäƤ��ޤ��� =item * =begin original The current input line is normally in $_, not $0. It generally does not have the newline stripped. ($0 is the name of the program executed.) See L. =end original �̾�����ȹԤ� $0 �ǤϤʤ� $_ �ˤ���ޤ��� ����Ū�ˡ����Ԥϼ�������ޤ��� ($0 �ˤϼ¹Ԥ��Ƥ���ץ�������̾��������ޤ�)�� L �򻲾Ȥ��Ƥ��������� =item * =begin original $> does not refer to fields--it refers to substrings matched by the last match pattern. =end original $> �ϥե�����ɤ򻲾Ȥ��ޤ���--�����ľ���˹Ԥä� �ѥ�����ޥå��󥰤���ʬʸ����򻲾Ȥ��ޤ��� =item * =begin original The print() statement does not add field and record separators unless you set C<$,> and C<$\>. You can set $OFS and $ORS if you're using the English module. =end original print() ʸ�ϡ�C<$,> �� C<$\> ���ͤ����ꤷ�ʤ��¤�ե�����ɶ��ڤ�Ҥ� �쥳���ɶ��ڤ�Ҥ��ղä��ޤ��� English �⥸�塼���ȤäƤ���С�$OFS �� $ORS ���Ф��� ���ꤹ�뤳�Ȥ�Ǥ��ޤ��� =item * =begin original You must open your files before you print to them. =end original �ե�������Ф��ƽ��Ϥ������ˤϡ����Υե�����򤢤餫���ᥪ���ץ󤷤� �����ʤ���Фʤ�ޤ��� =item * =begin original The range operator is "..", not comma. The comma operator works as in C. =end original �ϰϱ黻�Ҥ� ".." �Ǥ��äơ�����ޤǤϤ���ޤ��� ����ޱ黻�Ҥ� C ��Ʊ���褦�ʿ����񤤤򤷤ޤ��� =item * =begin original The match operator is "=~", not "~". ("~" is the one's complement operator, as in C.) =end original �ޥå��黻�Ҥ� "=~" �Ǥ��äơ�"~" �ǤϤ���ޤ��� ("~" ��C��Ʊ�ͤˡ�1 ���������黻�ҤǤ���) =item * =begin original The exponentiation operator is "**", not "^". "^" is the XOR operator, as in C. (You know, one could get the feeling that B is basically incompatible with C.) =end original �٤���α黻�Ҥ� "**" �Ǥ��äơ�"^" �ǤϤ���ޤ��� "^" �� C ��Ʊ�͡�XOR �黻�ҤǤ��� (B ������Ū�� C ����ߴ��Ǥ��뤳�Ȥˤ����դ����⤷��ޤ���͡�) =item * =begin original The concatenation operator is ".", not the null string. (Using the null string would render C unparsable, because the third slash would be interpreted as a division operator--the tokenizer is in fact slightly context sensitive for operators like "/", "?", and ">". And in fact, "." itself can be the beginning of a number.) =end original Ϣ�ܱ黻�Ҥ� "." �Ǥ��äơ���ʸ����ǤϤ���ޤ��� (��ʸ�����ȤäƤ��ޤ��� C �������� 3 ���ܤΥ���å��夬 �����黻�ҤȲ�ᤵ��Ƥ��ޤ��Τ����������ϤǤ��ʤ��ʤ�ޤ�-- Perl �λ�����ϴ�� "/", "?", ">" �Ȥ��ä��黻�Ҥ��Ф��� ¿��ʸ̮��¸�ȤʤäƤ��ޤ��� �ºݡ�"." ���Ȥ���ͤλϤޤ�Ȥʤ��ǽ���⤢��ޤ���) =item * =begin original The C, C, and C keywords work differently. =end original ������� C, C, C �ο����񤤤��ۤʤ�ޤ��� =item * =begin original The following variables work differently: =end original �ʲ����ѿ���Ư�����ۤʤ�ޤ��� Awk Perl ARGC scalar @ARGV (compare with $#ARGV) ARGV[0] $0 FILENAME $ARGV FNR $. - something FS (whatever you like) NF $#Fld, or some such NR $. OFMT $# OFS $, ORS $\ RLENGTH length($&) RS $/ RSTART length($`) SUBSEP $; =item * =begin original You cannot set $RS to a pattern, only a string. =end original $RS ������ɽ���򥻥åȤ��뤳�ȤϤǤ��ޤ���; �Ǥ���Τ�ʸ��������Ǥ��� =item * =begin original When in doubt, run the B construct through B and see what it gives you. =end original ̯���Ȼפä��Ȥ��ˤ� B �ι�ʸ�� B ���̤��ơ����Ϥ��줿��Τ� ���Ƥߤޤ��礦�� =back =head2 C/C++ Traps (C/++ ���) =begin original Cerebral C and C++ programmers should take note of the following: =end original ��Ū�� C �� C++ �Υץ�����ޤϰʲ��Τ��Ȥ����դ��٤��Ǥ�: =over 4 =item * =begin original Curly brackets are required on C's and C's. =end original C �� C �ˤ��椫�ä���ɬ�פǤ��� =item * =begin original You must use C rather than C. =end original C �ǤϤʤ���C ��Ȥ�ʤ���Фʤ�ޤ��� =item * =begin original The C and C keywords from C become in Perl C and C, respectively. Unlike in C, these do I work within a C construct. See L. =end original C �� C �� C �ϡ�Perl �ǤϤ��줾�� C �� C �Ȥʤ�ޤ��� C �Ȥϰۤʤꡢ������ C ��ʸ�Ǥ� I<�Ȥ��ޤ���>�� L �򻲾Ȥ��Ƥ��������� =item * =begin original The switch statement is called C and only available in perl 5.10 or newer. See L. =end original switch ʸ�� C �ȸƤФ졢perl 5.10 �ʹߤǤΤ����Ѳ�ǽ�Ǥ��� L �򻲾Ȥ��Ƥ��������� =item * =begin original Variables begin with "$", "@" or "%" in Perl. =end original Perl�Ǥϡ��ѿ��� "$" �� "@" �� "%" �ǻϤޤ�ޤ��� =item * =begin original Comments begin with "#", not "/*" or "//". Perl may interpret C/C++ comments as division operators, unterminated regular expressions or the defined-or operator. =end original �����ȤλϤޤ�ϡ�"#" �Ǥ��ꡢ"/*" �� "//" �ǤϤ���ޤ��� Perl �� C/C++ �Υ����Ȥ�����黻�ҡ���ü���Ƥ��ʤ�����ɽ���� ������±黻�ҤȤ��Ʋ�᤹�뤫�⤷��ޤ��� =item * =begin original You can't take the address of anything, although a similar operator in Perl is the backslash, which creates a reference. =end original �ʤˤ��Υ��ɥ쥹�����뤳�ȤϤǤ��ޤ���; Perl �ˤϻ����褦�ʱ黻�ҤǤ��� �Хå�����å��夬����ޤ���������ϥ�ե���󥹤��������ޤ��� =item * =begin original C must be capitalized. C<$ARGV[0]> is C's C, and C ends up in C<$0>. =end original C ����ʸ���Ǥʤ���Фʤ�ޤ��� C<$ARGV[0]> �� C �Ǥ� C ����������C �ˤ������Τ� C<$0> �Ǥ��� =item * =begin original System calls such as link(), unlink(), rename(), etc. return nonzero for success, not 0. (system(), however, returns zero for success.) =end original link(), unlink(), rename() �ʤɤΥ����ƥॳ����ϡ��������� 0 �ǤϤʤ��� 0 ���ͤ��֤��ޤ��� (â����system() ���������� 0 ���֤��ޤ���) =item * =begin original Signal handlers deal with signal names, not numbers. Use C to find their names on your system. =end original �����ʥ�ϥ�ɥ�ϡ������ʥ��ֹ�ǤϤʤ������ʥ�̾�򰷤��ޤ��� ���ѤǤ��륷���ʥ�̾�ϡ�kill -l �Ȥ��ƳΤ���Ƥ��������� =back =head2 JavaScript Traps (JavaScript ���) =begin original Judicious JavaScript programmers should take note of the following: =end original ��θ���� JavaScript �ץ�����ޤϰʲ��Τ��Ȥ����դ��٤��Ǥ�: =over 4 =item * =begin original In Perl, binary C<+> is always addition. C<$string1 + $string2> converts both strings to numbers and then adds them. To concatenate two strings, use the C<.> operator. =end original Perl �Ǥϡ����� C<+> �Ͼ�˲û��Ǥ��� C<$string1 + $string2> ��ξ����ʸ�������ͤ��Ѵ����Ƥ���û����ޤ��� ��Ĥ�ʸ������礹��ˤϡ�C<.> �黻�Ҥ�ȤäƤ��������� =item * =begin original The C<+> unary operator doesn't do anything in Perl. It exists to avoid syntactic ambiguities. =end original C<+> ñ��黻�Ҥ� Perl �Ǥϲ��⤷�ޤ��� �����ʸˡŪ��ۣ�椵���򤱤뤿���¸�ߤ��Ƥ��ޤ��� =item * =begin original Unlike C, Perl's C (also spelled C) does not allow the left-hand side to be an arbitrary expression. It must be a variable: =end original C �ȰۤʤꡢPerl �� C (C �Ƚ񤯤��Ȥ⤢��ޤ�) �� ��¦��Ǥ�դμ����֤����ȤϤǤ��ޤ��� ������ѿ��Ǥʤ���Фʤ�ޤ���: for my $variable (keys %hash) { ... } =begin original Furthermore, don't forget the C in there, as C iterates over the keys and values, and is generally not useful ($kv would be a key, then a value, and so on). =end original ����ˡ������� C ��˺��ʤ��Ǥ�������; C �� �������ͤ��Ф���ȿ������Τǡ�����Ū�ˤ�ͭ�ѤǤϤ���ޤ��� ($kv �ϥ����ˤʤꡢ �����ͤˤʤꡢ�Ȥ������ˤʤ�ޤ�)�� =item * =begin original To iterate over the indices of an array, use C. C iterates over the values. =end original ����Υ���ǥå������Ф���ȿ������ˤϡ� C ��ȤäƤ��������� C ���ͤ��Ф���ȿ�����ޤ��� =item * =begin original Perl requires braces following C, C, C, etc. =end original Perl �� C, C, C �ʤɤ˰���³�����椫�ä���ɬ�פǤ��� =item * =begin original In Perl, C is spelled C. =end original Perl �Ǥϡ�C �� C �Ƚ񤭤ޤ��� =item * =begin original C has higher precedence than assignment. In JavaScript, one can write: =end original C ���������⤤ͥ���̤�����ޤ��� JavaScript �Ǥϡ��ʲ��Τ褦�˽񤱤�: condition ? do_something() : variable = 3 =begin original and the variable is only assigned if the condition is false. In Perl, you need parentheses: =end original ��郎���ξ��ˤΤ��ѿ�����������ޤ��� Perl �Ǥϡ����ä���ɬ�פǤ�: $condition ? do_something() : ($variable = 3); =begin original Or just use C. =end original �ޤ���ñ�� C ��ȤäƤ��������� =item * =begin original Perl requires semicolons to separate statements. =end original Perl ��ʸ��ʬ��˥��ߥ�����ɬ�פǤ��� =item * =begin original Variables declared with C only affect code I the declaration. You cannot write C<$x = 1; my $x;> and expect the first assignment to affect the same variable. It will instead assign to an C<$x> declared previously in an outer scope, or to a global variable. =end original C ��������줿�ѿ�������� I<��> �ǤΤ߸��̤�����ޤ��� C<$x = 1; my $x;> �Ƚ񤤤ƺǽ��������Ʊ���ѿ��˱ƶ������ ���ꤹ�뤳�ȤϤǤ��ޤ��� ����ϳ�¦�Υ������ס����뤤�ϥ������Х��ѿ��� C<$x> ����������ޤ��� =begin original Note also that the variable is not visible until the following I. This means that in C the second $x refers to one declared previously. =end original �ޤ����ѿ��ϼ��� I<ʸ> �ޤ�ͭ���ˤʤ�ʤ����Ȥˤ����դ��Ƥ��������� ����ϡ�C �Ȥ���� 2 ���ܤ� $x ������������줿��Τ� ���Ȥ���Ȥ������ȤǤ��� =item * =begin original C variables are scoped to the current block, not to the current function. If you write C<{my $x;} $x;>, the second C<$x> does not refer to the one declared inside the block. =end original C �ѿ��Υ������פϸ��ߤδؿ��ǤϤʤ����ߤΥ֥��å��Ǥ��� C<{my $x;} $x;> �Ƚ񤯤ȡ�2 ���ܤ� C<$x> �ϥ֥��å�����¦��������줿�ѿ��� ���ȤǤ��ޤ��� =item * =begin original An object's members cannot be made accessible as variables. The closest Perl equivalent to C is C, which can alias C<$_> to the object: =end original ���֥������ȤΥ��Ф��ѿ��Ȥ��ƥ��������Ǥ��ޤ��� C �� Perl �Ǥΰ��ֶᤤ����ʪ�� C �ǡ� ����� C<$_> �����֥������Ȥؤ���̾�Ȥʤ�ޤ�: for ($object) { $_->method; } =item * =begin original The object or class on which a method is called is passed as one of the method's arguments, not as a separate C value. =end original �᥽�åɤ��ƤӽФ��줿���֥������Ȥޤ��ϥ��饹�ϡ���Ω���� C �ͤǤϤʤ� �᥽�åɤΰ����ΰ�ĤȤ����Ϥ���ޤ��� =back =head2 Sed Traps (sed ���) =begin original Seasoned B programmers should take note of the following: =end original �������� B �ץ�����ޤϰʲ��Τ��Ȥ����դ��٤��Ǥ�: =over 4 =item * =begin original A Perl program executes only once, not once for each input line. You can do an implicit loop with C<-n> or C<-p>. =end original Perl �Υץ������ϡ�1 �٤����¹Ԥ���ޤ�; ���Ϲ���ǤϤ���ޤ��� C<-n> �� C<-p> ��Ȥäư��ۤΥ롼�פ�Ȥ��ޤ��� =item * =begin original Backreferences in substitutions use "$" rather than "\". =end original �ִ��ˤ�����������Ȥˤϡ�"\" �ǤϤʤ� "$" ��Ȥ��ޤ��� =item * =begin original The pattern matching metacharacters "(", ")", and "|" do not have backslashes in front. =end original "(", ")", "|" �Ȥ��ä��ѥ�����ޥå��Υ᥿����饯���ϡ�����ľ���� �Хå�����å�����֤�ɬ�פϤ���ޤ��� =item * =begin original The range operator is C<...>, rather than comma. =end original �ϰϱ黻�Ҥ� C<...> �Ǥ��äơ�����ޤǤϤ���ޤ��� =back =head2 Shell Traps (shell ���) =begin original Sharp shell programmers should take note of the following: =end original �Ԥ�������ץ�����ޤϰʲ��Τ��Ȥ����դ��٤��Ǥ�: =over 4 =item * =begin original The backtick operator does variable interpolation without regard to the presence of single quotes in the command. =end original �Хå��������ȱ黻�Ҥϡ����ޥ����˥��󥰥륯�����Ȥ����äƤ� �ѿ���Ÿ����Ԥʤ��ޤ��� =item * =begin original The backtick operator does no translation of the return value, unlike B. =end original �Хå��������ȱ黻�Ҥ� B �Ȥϰ�äơ��֤��줿�ͤ��Ѵ����ޤ��� =item * =begin original Shells (especially B) do several levels of substitution on each command line. Perl does substitution in only certain constructs such as double quotes, backticks, angle brackets, and search patterns. =end original ������ (�ä� B) �ϡ����ޥ�ɥ饤�󤴤Ȥ˲��ʳ�����ִ���Ԥʤ��ޤ��� Perl �ϥ��֥륯�����ȡ��Хå��������ȡ������ä��������ѥ�����Ȥ��ä� ����ι�¤�Ǥ����ִ���Ԥʤ��ޤ��� =item * =begin original Shells interpret scripts a little bit at a time. Perl compiles the entire program before executing it (except for C blocks, which execute at compile time). =end original ������ϰ��٤˾������IJ���Ԥʤ��ޤ��� Perl �ϼ¹����˥ץ���������Τ򥳥�ѥ��뤷�ޤ� (����ѥ�����˼¹Ԥ���� C �֥��å������)�� =item * =begin original The arguments are available via @ARGV, not $1, $2, etc. =end original ������ $1, $2 �ʤɤǤϤʤ���@ARGV ���������ޤ��� =item * =begin original The environment is not automatically made available as separate scalar variables. =end original �Ķ��ѿ��ϡ���ưŪ�ˤ���Ω�����������ѿ��Ȥ������ѤǤ���褦�ˤʤ�ޤ��� =item * =begin original The shell's C uses "=", "!=", "<" etc for string comparisons and "-eq", "-ne", "-lt" etc for numeric comparisons. This is the reverse of Perl, which uses C, C, C for string comparisons, and C<==>, C C<< < >> etc for numeric comparisons. =end original ������� C �� "=", "!=", "<" �ʤɤ�ʸ������Ӥ˻Ȥ���"-eq", "-ne", "-lt" �ʤɤ������Ӥ˻Ȥ��ޤ��� ����� Perl �ȤϵդǤ�; Perl �Ǥ� C, C, C ��ʸ������Ӥ˻Ȥ��� C<==>, C C<< < >> �ʤɤ������Ӥ˻Ȥ��ޤ��� =back =head2 Perl Traps (Perl ���) =begin original Practicing Perl Programmers should take note of the following: =end original ����Ū�� Perl �ץ�����ޤϰʲ��Τ��Ȥ����դ��٤��Ǥ�: =over 4 =item * =begin original Remember that many operations behave differently in a list context than they do in a scalar one. See L for details. =end original ¿���α黻�Ҥ��ꥹ�ȥ���ƥ����Ȥȥ����饳��ƥ����ȤȤ� �����񤤤��Ѥ�뤳�Ȥ�˺��ʤ��Ǥ��������� �ܤ����� L �򻲾Ȥ��Ƥ��������� =item * =begin original Avoid barewords if you can, especially all lowercase ones. You can't tell by just looking at it whether a bareword is a function or a string. By using quotes on strings and parentheses on function calls, you won't ever get them confused. =end original ���ñ�졢�ä����Ƥ���ʸ���Τ�ΤϤǤ���¤�Ȥ�ʤ��Ǥ��������� �����ܤ����ǤϤ��Ρ����ñ��פ��ؿ��ʤΤ��� ʸ����ʤΤ���Ƚ�ǤǤ��ޤ��� ʸ����ˤϥ������Ȥ򡢴ؿ��ƤӽФ��ˤϳ�̤�Ĥ���С� �¤����Ȥ�ʤ��Ǥ��礦�� =item * =begin original You cannot discern from mere inspection which builtins are unary operators (like chop() and chdir()) and which are list operators (like print() and unlink()). (Unless prototyped, user-defined subroutines can B be list operators, never unary ones.) See L and L. =end original �ȹ��ߴؿ��Τɤ줬(chop() �� chdir())�Τ褦��ñ��黻�Ҥǡ� �ɤ줬(print() �� unlink())�Τ褦�� �ꥹ�ȱ黻�ҤǤ��뤫�ϸ��������ǤϤ狼��ޤ��� (�ץ��ȥ����פ��ʤ���С��桼����������֥롼����� �ꥹ�ȱ黻�ҤȤ��� B<�Τ�> ����Ǥ���ñ��黻�ҤˤϤǤ��ޤ���) L �� L �򻲾Ȥ��Ƥ��������� =item * =begin original People have a hard time remembering that some functions default to $_, or @ARGV, or whatever, but that others which you might expect to do not. =end original �����Ĥ��δؿ��� $_ �� @ARGV �ʤɤ�ǥե���Ȥˤ��Ƥ��ޤ����� Ʊ�����Ȥ���Ԥ���¾�δؿ����ǥե���ȤˤʤäƤ��ʤ����Ȥ�Ф���Τˡ� �ɤ������ԥ󥰤�ɬ�פǤ��礦�� =item * =begin original The construct is not the name of the filehandle, it is a readline operation on that handle. The data read is assigned to $_ only if the file read is the sole condition in a while loop: =end original ��¤�ϥե�����ϥ�ɥ�ǤϤʤ������Υϥ�ɥ���Ф�����ɤ߹��ߤ� ���(readline operation)�Ǥ��� while �롼�פξ�P����ˤ��Υե������ɤ߹��ߤ��������ä����ˤ� �ɤ߹��ޤ줿�ǡ����� $_ ����������ޤ��� while () { } while (defined($_ = )) { }.. ; # data discarded! =item * =begin original Remember not to use C<=> when you need C<=~>; these two constructs are quite different: =end original C<=~> ��ɬ�פʤȤ����� C<=> ��Ȥ�ʤ����Ȥ������Ȥ�˺��ʤ��Ǥ�������; �������Ĥι�¤�Ϥ��ʤ�㤤�ޤ�: $x = /foo/; $x =~ /foo/; =item * =begin original The C construct isn't a real loop that you can use loop control on. =end original C ��¤�ϡ��롼�������Ԥ���褦�������Υ롼�פǤϤ���ޤ��� =item * =begin original Use C for local variables whenever you can get away with it (but see L for where you can't). Using C actually gives a local value to a global variable, which leaves you open to unforeseen side-effects of dynamic scoping. =end original ���������ѿ��ϡ�C �ǺѤ�Ȥ����ǤϤ���ǺѤޤ��Ƥ������� (�Ȥ��ʤ����ˤĤ��Ƥϡ�L �򻲾Ȥ��Ƥ�������)�� C ��Ȥ��Х������Х��ѿ����Ф������������ͤ�Ϳ���ޤ����� ưŪ�������פ���θ�������Ѥβ�ǽ���ϡ����ΤޤޤǤ��� =item * =begin original If you localize an exported variable in a module, its exported value will not change. The local name becomes an alias to a new value but the external name is still an alias for the original. =end original �⥸�塼��ˤ��� export ���줿�ѿ���ɽ경����ȡ����� export ���줿 �ͤ��ѹ�����ޤ��� ��������̾�Ͽ������ͤ���̾(alias)�Ȥʤ�ޤ����� ����̾�ϸ������ͤ���̾�ΤޤޤǤ��� =back =begin original As always, if any of these are ever officially declared as bugs, they'll be fixed and removed. =end original ���Ĥ�Τ褦�ˡ��Х��Ȥ��Ƹ�����������줿��Τ�����С� ����Ͻ�������Ƽ��������Ǥ��礦�� =begin meta Translate: KIMURA Koichi (5.005_03) Update: SHIRAKATA Kentaro (5.6.1-) Status: completed =end meta