argra****@users*****
argra****@users*****
2011年 9月 9日 (金) 04:45:54 JST
Index: docs/modules/bytes-1.03/bytes.pod diff -u /dev/null docs/modules/bytes-1.03/bytes.pod:1.1 --- /dev/null Fri Sep 9 04:45:54 2011 +++ docs/modules/bytes-1.03/bytes.pod Fri Sep 9 04:45:54 2011 @@ -0,0 +1,120 @@ + +=encoding euc-jp + +=head1 NAME + +=begin original + +bytes - Perl pragma to force byte semantics rather than character semantics + +=end original + +bytes - 文字単位ではなくバイト単位の意味論を強制する Perl プラグマ + +=head1 SYNOPSIS + + use bytes; + ... chr(...); # or bytes::chr + ... index(...); # or bytes::index + ... length(...); # or bytes::length + ... ord(...); # or bytes::ord + ... rindex(...); # or bytes::rindex + ... substr(...); # or bytes::substr + no bytes; + +=head1 DESCRIPTION + +=begin original + +The C<use bytes> pragma disables character semantics for the rest of the +lexical scope in which it appears. C<no bytes> can be used to reverse +the effect of C<use bytes> within the current lexical scope. + +=end original + +The C<use bytes> pragma disables character semantics for the rest of the +lexical scope in which it appears. C<no bytes> can be used to reverse +the effect of C<use bytes> within the current lexical scope. +(TBT) + +=begin original + +Perl normally assumes character semantics in the presence of character +data (i.e. data that has come from a source that has been marked as +being of a particular character encoding). When C<use bytes> is in +effect, the encoding is temporarily ignored, and each string is treated +as a series of bytes. + +=end original + +Perl normally assumes character semantics in the presence of character +data (i.e. data that has come from a source that has been marked as +being of a particular character encoding). When C<use bytes> is in +effect, the encoding is temporarily ignored, and each string is treated +as a series of bytes. +(TBT) + +=begin original + +As an example, when Perl sees C<$x = chr(400)>, it encodes the character +in UTF-8 and stores it in $x. Then it is marked as character data, so, +for instance, C<length $x> returns C<1>. However, in the scope of the +C<bytes> pragma, $x is treated as a series of bytes - the bytes that make +up the UTF8 encoding - and C<length $x> returns C<2>: + +=end original + +As an example, when Perl sees C<$x = chr(400)>, it encodes the character +in UTF-8 and stores it in $x. Then it is marked as character data, so, +for instance, C<length $x> returns C<1>. However, in the scope of the +C<bytes> pragma, $x is treated as a series of bytes - the bytes that make +up the UTF8 encoding - and C<length $x> returns C<2>: +(TBT) + + $x = chr(400); + print "Length is ", length $x, "\n"; # "Length is 1" + printf "Contents are %vd\n", $x; # "Contents are 400" + { + use bytes; # or "require bytes; bytes::length()" + print "Length is ", length $x, "\n"; # "Length is 2" + printf "Contents are %vd\n", $x; # "Contents are 198.144" + } + +=begin original + +chr(), ord(), substr(), index() and rindex() behave similarly. + +=end original + +chr(), ord(), substr(), index() and rindex() behave similarly. +(TBT) + +=begin original + +For more on the implications and differences between character +semantics and byte semantics, see L<perluniintro> and L<perlunicode>. + +=end original + +For more on the implications and differences between character +semantics and byte semantics, see L<perluniintro> and L<perlunicode>. +(TBT) + +=head1 LIMITATIONS + +(制限) + +=begin original + +bytes::substr() does not work as an lvalue(). + +=end original + +bytes::substr() は lvalue() では動作しません。 + +=head1 SEE ALSO + +L<perluniintro>, L<perlunicode>, L<utf8> + +=cut +