argra****@users*****
argra****@users*****
2009年 4月 24日 (金) 22:51:31 JST
Index: docs/modules/encoding-2.6/encoding.pod diff -u docs/modules/encoding-2.6/encoding.pod:1.1 docs/modules/encoding-2.6/encoding.pod:1.2 --- docs/modules/encoding-2.6/encoding.pod:1.1 Thu Apr 23 22:53:41 2009 +++ docs/modules/encoding-2.6/encoding.pod Fri Apr 24 22:51:31 2009 @@ -9,7 +9,7 @@ =end original -encoding - non-ascii や non-utf8でスクリプトを書けるようにする +encoding - 非 ascii や非 utf8 でスクリプトを書けるようにする =head1 SYNOPSIS @@ -137,6 +137,8 @@ =head2 Literal Conversions +(リテラル変換) + =begin original You can write code in EUC-JP as follows: @@ -179,6 +181,8 @@ =head2 PerlIO layers for C<STD(IN|OUT)> +(C<STD(IN|OUT)> のための PerlIO 層) + =begin original The B<encoding> pragma also modifies the filehandle layers of @@ -227,10 +231,10 @@ =end original -By default, if strings operating under byte semantics and strings -with Unicode character data are concatenated, the new string will -be created by decoding the byte strings as I<ISO 8859-1 (Latin-1)>. -(TBT) +デフォルトでは、バイトセマンティクスで操作している文字列と +Unicode 文字データの文字列を連結すると、新しい文字列は +バイト文字列を I<ISO 8859-1 (Latin-1)> としてデコードしたものから +作られます。 =begin original @@ -239,9 +243,9 @@ =end original -The B<encoding> pragma changes this to use the specified encoding -instead. For example: -(TBT) +B<encoding> プラグマは、代わりに指定されたエンコーディングを使うことで +これを変更します。 +例えば: use encoding 'utf8'; my $string = chr(20000); # a Unicode string @@ -257,10 +261,10 @@ =end original -Will print C<2>, because C<$string> is upgraded as UTF-8. Without -C<use encoding 'utf8';>, it will print C<4> instead, since C<$string> -is three octets when interpreted as Latin-1. -(TBT) +これは C<2> を表示します; なぜなら C<$string> は UTF-8 に +昇格されるからです。 +C<use encoding 'utf8';> がない場合、代わりに C<4> を表示します; +なぜなら C<$string> は Latin-1 として解釈されると 3 オクテットだからです。 =head2 Side effects @@ -274,10 +278,10 @@ =end original -If the C<encoding> pragma is in scope then the lengths returned are -calculated from the length of C<$/> in Unicode characters, which is not -always the same as the length of C<$/> in the native encoding. -(TBT) +スコープ内に C<encoding> プラグマがある場合、 +返される長さは Unicode 文字での C<$/> の長さから計算され、 +これはネイティブエンコーディングでの C<$/> の長さと常に同じとは +限りません。 =begin original @@ -285,8 +289,8 @@ =end original -This pragma affects utf8::upgrade, but not utf8::downgrade. -(TBT) +このプラグマは utf8::upgrade に影響を与えますが、utf8::downgrade には +影響を与えません。 =head1 FEATURES THAT REQUIRE 5.8.1 @@ -302,12 +306,14 @@ 本プラグマで提供される機能の幾つかは perl 5.8.1 を要求します。 これらの機能の大部分は Inaba Hiroto により行われました。 -その他の機能と変更点は 5.8.0 で使えまする。 +その他の機能と変更点は 5.8.0 で使えます。 =over =item "NON-EUC" doublebyte encodings +(「非 EUC」2 バイトエンコーディング) + =begin original Because perl needs to parse script before applying this pragma, such @@ -318,11 +324,11 @@ =end original -perl は本プラグマを適用する前にスクリプトを解析する必要があるので、 -Shift_JIS や Big-5 のような二バイト目に'\'(バックスラッシュ; \x5c)を含む +perl はこのプラグマを適用する前にスクリプトを解析する必要があるので、 +Shift_JIS や Big-5 のような、2 バイト目に'\'(バックスラッシュ; \x5c)を含む 可能性があるエンコーディングで失敗していました。 なぜなら、二バイト目が誤って後続するクォート文字をエスケープしてしまう -可能性があるからだ。 +可能性があるからです。 Perl 5.8.1 以降ではこの問題は解決されました。 =item tr// @@ -340,6 +346,8 @@ =item DATA pseudo-filehandle +(DATA 疑似ファイルハンドル) + =begin original Another feature that was overlooked was C<DATA>. @@ -352,6 +360,8 @@ =head1 USAGE +(使用法) + =over 4 =item use encoding [I<ENCNAME>] ; @@ -367,7 +377,6 @@ スクリプトのエンコーディングを I<ENCNAME> に設定します。 ${^UNICODE} が存在していてそれが非ゼロでない限り、STDIN および STDOUT の PerlIO 層は ":encoding(I<ENCNAME>)" に設定されます。 - =begin original @@ -429,7 +438,7 @@ オプションは完全に無視されます。 $<^UNICDOE>は perl 5.8.1 で導入された変数です。 L<perlrun>, L<perlvar/"${^UNICODE}">, L<perlrun/"-C"> を -参照してください。(perl 5.8.1 以降)。 +参照してください (perl 5.8.1 以降)。 =item use encoding I<ENCNAME> Filter=E<gt>1; @@ -494,7 +503,8 @@ これは何を意味するのでしょう? ソースコードは 'use utf8' を指定して UTF-8で書いたかのように振る舞います。 -だから使っているエディタがたとえば Shift_JIS しかサポートしていなくても、 Programming Perl, 3rd Ed. の第 15 章にある例を試すことがでます。 +だから使っているエディタがたとえば Shift_JIS しかサポートしていなくても、 +C<Programming Perl, 3rd Ed.> の第 15 章にある例を試すことがでます。 たとえば、UTF-8 識別子を使えます。 =begin original @@ -546,8 +556,12 @@ =head1 CAVEATS +(警告) + =head2 NOT SCOPED +(スコープではありません) + =begin original The pragma is a per script, not a per block lexical. Only the last @@ -558,7 +572,7 @@ =end original -本プラグマはスクリプトごとのものであってブロックレキシカルごとでは +このプラグマはスクリプト毎のものであってブロックレキシカル毎では ありません。 最後に現れた C<use encoding> もしくは C<no encoding> だけが意味を持ち、 スクリプト全体に影響を及ぼします。 @@ -575,9 +589,7 @@ =end original 同じ理由で、本プラグマをモジュールの中で使うことも非推奨です -(though not as strongly discouraged as the case above. -See below)。 -(TBT) +(しかし、上述の場合ほど強い非推奨ではありません。以降を参照してください)。 =begin original @@ -587,7 +599,7 @@ =end original それでもこのプラグマを使ったモジュールを書く必要があるのなら、ロードされる -順番に十分に注意するしてください。 +順番に十分に注意してください。 以下のコードを見てみましょう; # called module @@ -608,7 +620,7 @@ =end original -この現象を避ける最善の方法は本プラグマを他のモジュールをロードした後で +この現象を避ける最善の方法は他のモジュールをロードした後でこのプラグマを 使うというものです。 例: @@ -703,6 +715,8 @@ =head2 tr/// with ranges +(tr/// の範囲指定) + =begin original The B<encoding> pragma works by decoding string literals in @@ -756,6 +770,8 @@ =head3 workaround to tr///; +(tr///; の回避策) + =begin original In perl 5.8.0, you can work around as follows; @@ -797,6 +813,8 @@ =head1 EXAMPLE - Greekperl +(例 - Greekperl) + use encoding "iso 8859-7"; # \xDF in ISO 8859-7 (Greek) is \x{3af} in Unicode. @@ -830,6 +848,8 @@ =head1 KNOWN PROBLEMS +(既知の問題) + =over =item literals in regex that are longer than 127 bytes @@ -863,6 +883,8 @@ =item format +(フォーマット) + =begin original This pragma doesn't work well with format because PerlIO does not @@ -915,6 +937,8 @@ =item Thread safety +(スレッドセーフ性) + =begin original C<use encoding ...> is not thread-safe (i.e., do not use in threaded @@ -922,14 +946,15 @@ =end original -C<use encoding ...> is not thread-safe (i.e., do not use in threaded -applications). -(TBT) +C<use encoding ...> はスレッドセーフではありません (つまり、スレッドを +使うアプリケーションでは使わないでください)。 =back =head2 The Logic of :locale +(;locale のロジック) + =begin original The logic of C<:locale> is as follows: @@ -1002,6 +1027,8 @@ =head1 HISTORY +(歴史) + =begin original This pragma first appeared in Perl 5.8.0. For features that require @@ -1018,8 +1045,8 @@ =end original -The C<:locale> subpragma was implemented in 2.01, or Perl 5.8.6. -(TBT) +C<:locale> サブプラグマはバージョン 2.01、つまり Perl 5.8.6 で +実装されました。 =head1 SEE ALSO