Kentaro Shirakata
argra****@users*****
2006年 8月 8日 (火) 04:43:52 JST
Index: docs/perl/5.6.1/perldiag.pod diff -u docs/perl/5.6.1/perldiag.pod:1.3 docs/perl/5.6.1/perldiag.pod:1.4 --- docs/perl/5.6.1/perldiag.pod:1.3 Tue Aug 8 01:56:49 2006 +++ docs/perl/5.6.1/perldiag.pod Tue Aug 8 04:43:52 2006 @@ -1,3 +1,4 @@ +=encoding euc-jp =head1 NAME @@ -71,6 +72,10 @@ =end original +Optional warnings are enabled by using the C<warnings> pragma or the B<-w> +and B<-W> switches. Warnings may be captured by setting C<$SIG{__WARN__}> +to a reference to a routine that will be called on each warning instead +of printing it. See L<perlvar>. =begin original @@ -79,6 +84,8 @@ =end original +デフォルトでは C<warnings> プラグマか B<-X> オプションで明示的に +無効にされない限り、警告は常に有効です。 =begin original @@ -89,6 +96,11 @@ =end original +トラップ可能なエラーは評価演算子を使ってトラップできます。 +L<perlfunc/eval> を参照してください。 +ほとんど全ての場合、警告は C<warnings> プラグマを使うことで +選択的に無効にしたり致命的エラーに昇格させたりできます。 +L<warnings> を参照してください。 =begin original @@ -158,6 +170,10 @@ =end original +(W ambiguous) A subroutine you have declared has the same name as a Perl +keyword, and you have used the name without qualification for calling +one or the other. Perl decided to call the builtin because the +subroutine is not imported. =begin original @@ -168,6 +184,10 @@ =end original +To force interpretation as a subroutine call, either put an ampersand +before the subroutine name, or qualify the name with its package. +Alternatively, you can import the subroutine (or pretend that it's +imported with the C<use subs> pragma). =begin original @@ -178,6 +198,10 @@ =end original +To silently interpret it as the Perl operator, use the C<CORE::> prefix +on the operator (e.g. C<CORE::log($x)>) or by declaring the subroutine +to be an object method (see L<perlsub/"Subroutine Attributes"> or +L<attributes>). =item Ambiguous use of %s resolved as %s @@ -189,6 +213,9 @@ =end original +(W ambiguous)(S) You said something that may not be interpreted the way +you thought. Normally it's pretty easy to disambiguate it by supplying +a missing quote, operator, parenthesis pair or declaration. =item '|' and '<' may not both be specified on command line @@ -200,6 +227,9 @@ =end original +(F) An error peculiar to VMS. Perl does its own command line +redirection, and found that STDIN was a pipe, and that you also tried to +redirect STDIN using '<'. Only one STDIN stream to a customer, please. =item '|' and '>' may not both be specified on command line @@ -213,6 +243,12 @@ =end original +(F) VMS 特有のエラーです。 +Perl does its own command line +redirection, and thinks you tried to redirect stdout both to a file and +into a pipe to another command. You need to choose one or the other, +though nothing's stopping you from piping into a program or Perl script +which 'splits' output into two streams, such as open(OUT,">$ARGV[0]") or die "Can't write to $ARGV[0]: $!"; while (<STDIN>) { @@ -235,6 +271,13 @@ =end original +(W misc) The pattern match (//), substitution (s///), and +transliteration (tr///) operators work on scalar values. If you apply +one of them to an array or a hash, it will convert the array or hash to +a scalar value -- the length of an array, or the population info of a +hash -- and then work on that scalar value. This is probably not what +you meant to do. See L<perlfunc/grep> and L<perlfunc/map> for +alternatives. =item Args must match #! line @@ -503,6 +546,12 @@ =end original +(W pack) You tried to pass a temporary value (like the result of a +function, or a computed expression) to the "p" pack() template. This +means the result contains a pointer to a location that could become +invalid anytime, even before the end of the current statement. Use +literals or global values as arguments to the "p" pack() template to +avoid this warning. =item Attempt to use reference as lvalue in substr @@ -514,6 +563,9 @@ =end original +(W substr) You supplied a reference as the first argument to substr() +used as an lvalue, which is pretty strange. Perhaps you forgot to +dereference it first. See L<perlfunc/substr>. =item Bad arg length for %s, is %d, should be %d @@ -619,9 +671,8 @@ =end original -(A) You've accidentally run your script through B<csh> instead -of Perl. Check the #! line, or manually feed your script into -Perl yourself. +(A) スクリプトを perl ではなく B<csh> で実行しようとしました。 +#! 行をチェックするか、スクリプトを直接 Perl で起動してください。 =item Bad name after %s:: @@ -711,6 +762,9 @@ =end original +(W bareword) The compiler found a bareword where it expected a +conditional, which often indicates that an || or && was parsed as part +of the last argument of the previous construct, for example: open FOO || die; @@ -721,6 +775,8 @@ =end original +It may also indicate a misspelled constant that has been interpreted as +a bareword: use constant TYPO => 1; if (TYOP) { print "foo" } @@ -731,6 +787,7 @@ =end original +C<strict> プラグマはこのようなエラーを防ぐのに便利です。 =item Bareword "%s" not allowed while "strict subs" in use @@ -742,6 +799,9 @@ =end original +(F) With "strict subs" in use, a bareword is only allowed as a +subroutine identifier, in curly brackets or to the left of the "=>" +symbol. Perhaps you need to predeclare a subroutine? =item Bareword "%s" refers to nonexistent package @@ -753,6 +813,9 @@ =end original +(W bareword) You used a qualified bareword of the form C<Foo::>, but the +compiler saw no other uses of that namespace before that point. Perhaps +you need to predeclare a package? =item BEGIN failed--compilation aborted @@ -779,6 +842,11 @@ =end original +(F) Perl found a C<BEGIN {}> subroutine (or a C<use> directive, which +implies a C<BEGIN {}>) after one or more compilation errors had already +occurred. Since the intended environment for the C<BEGIN {}> could not +be guaranteed (due to the errors), and since subsequent code likely +depends on its correct operation, Perl just gave up. =item \1 better written as $1 @@ -807,6 +875,9 @@ =end original +(W portable) 指定された 2 進数が 2**32-1 (4294967295) を越えるので、 +システム間での移植性がありません。 +移植性に関するさらなる考察については L<perlport> を参照してください。 =item bind() on closed socket %s @@ -829,6 +900,7 @@ =end original +(W portable) 32 を越えるサイズのビットベクタは移植性がありません。 =item Bizarre copy of %s in %s @@ -839,6 +911,7 @@ =end original +(P) コピーできない内部の値をコピーしようとしました。 =item B<-P> not allowed for setuid/setgid script @@ -863,6 +936,9 @@ =end original +(W internal) A warning peculiar to VMS. While Perl was preparing to +iterate over %ENV, it encountered a logical name or symbol definition +which was too long, so it was truncated to the string shown. =item Callback called exit @@ -891,6 +967,14 @@ =end original +(W prototype) You've called a function that has a prototype before the +parser saw a definition or declaration for it, and Perl could not check +that the call conforms to the prototype. You need to either add an +early prototype declaration for the subroutine in question, or move the +subroutine definition ahead of the call to get proper prototype +checking. Alternatively, if you are certain that you're calling the +function correctly, you may put an ampersand before the name to avoid +the warning. See L<perlsub>. =item / cannot take a count @@ -902,6 +986,9 @@ =end original +(F) You had an unpack template indicating a counted-length string, but +you have also specified an explicit size for the string. See +L<perlfunc/pack>. =item Can't bless non-reference value @@ -941,6 +1028,9 @@ =end original +(F) メソッド呼び出しの文法が使われていますが、 +オブジェクトリファレンスかパッケージ名であるべきところが未定義値です。 +以下のように書くとエラーが再現します: $BADREF = undef; process $BADREF 1,2,3; @@ -1007,6 +1097,8 @@ =end original +(P) なぜかスクリプトが nosuid かどうかをファイルシステムから +調べることができません。 =item Can't coerce array into hash @@ -1018,6 +1110,9 @@ =end original +(F) ハッシュが想定される場所で配列を使っていますが、 +この配列にはキーから添え字に変換するための情報がありません。 +このようなことは添え字 0 にハッシュリファレンスがある配列でのみ可能です。 =item Can't coerce %s to integer in %s @@ -1100,6 +1195,9 @@ =end original +(S) Currently, only scalar variables can declared with a specific class +qualifier in a "my" or "our" declaration. The semantics may be extended +for other types of variables in future. =item Can't declare %s in "%s" @@ -1162,6 +1260,9 @@ =end original +(S inplace) Your filesystem does not support filenames longer than 14 +characters and Perl was unable to create a unique filename during +inplace editing with the B<-i> switch. The file was ignored. =item Can't do {n,m} with n > m before << HERE in regex m/%s/ @@ -1305,6 +1406,8 @@ =end original +(F) A string of a form C<CORE::word> was given to prototype(), but there +is no builtin with the name C<word>. =item Can't find label %s @@ -1327,6 +1430,8 @@ =end original +(F) You used the B<-S> switch, but the script to execute could not be +found in the PATH. =item Can't find %s on PATH, '.' not in PATH @@ -1338,6 +1443,10 @@ =end original +(F) B<-S> オプションが使われましたが、 PATH に実行するスクリプトが +見つかりません。あるいは少なくとも適切なパーミッションがありません。 +スクリプトはカレントディレクトリにはありますが、PATH に +カレントディレクトリは含まれていません。 =item Can't find string terminator %s anywhere before EOF @@ -1364,6 +1473,9 @@ =end original +If you're getting this error from a here-document, you may have included +unseen whitespace before or after your closing tag. A good programmer's +editor will have a way to help you find these characters. =item Can't find %s property definition %s @@ -1376,6 +1488,10 @@ =end original +(F) You may have tried to use C<\p> which means a Unicode property for +example \p{Lu} is all uppercase letters. Escape the C<\p>, either +C<\\p> (just the C<\p>) or by C<\Q\p> (the rest of the string, until +possible C<\E>). =item Can't fork @@ -1411,6 +1527,21 @@ =end original +(S) A warning peculiar to VMS. This arises because of the difference +between access checks under VMS and under the Unix model Perl assumes. +Under VMS, access checks are done by filename, rather than by bits in +the stat buffer, so that ACLs and other protections can be taken into +account. Unfortunately, Perl assumes that the stat buffer contains all +the necessary information, and passes it, instead of the filespec, to +the access checking routine. It will try to retrieve the filespec using +the device name and FID present in the stat buffer, but this works only +if you haven't made a subsequent call to the CRTL stat() routine, +because the device name is overwritten with each call. If this warning +appears, the name lookup failed, and the access checking routine gave up +and returned FALSE, just to be conservative. (Note: The access checking +routine knows about the Perl C<stat> operator and file tests, so you +shouldn't ever see this warning in response to a Perl command; it arises +only if some internal code takes stat buffers lightly.) =item Can't get pipe mailbox device name @@ -1447,6 +1578,9 @@ =end original +(F) "goto" 文で foreach ループの中に飛び込もうとしました。 +ここからそこへは行けません。 +L<perlfunc/goto> を参照してください。 =item Can't "goto" out of a pseudo block @@ -1459,6 +1593,11 @@ =end original +(F) "goto" 文でブロックのように見えるけれども、適切な +ブロックではないところから飛び出そうとしました。 +これは普通 sort() ブロックやサブルーチンから飛び出そうとしたときに +起きますが、それはできません。 +L<perlfunc/goto> を参照してください。 =item Can't goto subroutine from an eval-string @@ -1470,6 +1609,9 @@ =end original +(F) The "goto subroutine" call can't be used to jump out of an eval +"string". (You can use it to jump out of an eval {BLOCK}, but you +probably don't want to.) =item Can't goto subroutine outside a subroutine @@ -1502,6 +1644,12 @@ =end original +(W signal) Perl has detected that it is being run with the SIGCHLD +signal (sometimes known as SIGCLD) disabled. Since disabling this +signal will interfere with proper determination of exit status of child +processes, Perl has reset the signal to its default value. This +situation typically indicates that the parent program under which Perl +may be running (e.g. cron) is being very careless. =item Can't "last" outside a loop block @@ -1536,6 +1684,10 @@ =end original +(F) You used local on a variable name that was previously declared as a +lexical variable using "my". This is not allowed. If you want to +localize a package variable of the same name, qualify it with the +package name. =item Can't localize pseudo-hash element @@ -1548,6 +1700,10 @@ =end original +(F) You said something like C<< local $ar->{'key'} >>, where $ar is a +reference to a pseudo-hash. That hasn't been implemented yet, but you +can get a similar effect by localizing the corresponding array element +directly -- C<< local $ar->[$ar->[0]{'key'}] >>. =item Can't localize through a reference @@ -1560,6 +1716,10 @@ =end original +(F) You said something like C<local $$ref>, which Perl can't currently +handle, because when it goes to restore the old value of whatever $ref +pointed to after the scope of the local() is finished, it can't be sure +that $ref will still be a reference. =item Can't locate %s @@ -1596,6 +1756,10 @@ =end original +(F) A function (or method) was called in a package which allows +autoload, but there is no function to autoload. Most probable causes +are a misprint in a function/method name or a failure to C<AutoSplit> +the file, say, by doing C<make install>. =item Can't locate object method "%s" via package "%s" @@ -1622,6 +1786,10 @@ =end original +(F) これは "Can't locate object method \"%s\" via package \"%s\"" の +メッセージと共に出る教育的な推測です。 +これはしばしばメソッドがまだロードされていないパッケージを +要求していることを意味します。 =item Can't locate package %s for @%s::ISA @@ -1644,6 +1812,8 @@ =end original +(F) %ENV へのリスト代入はいくつかのシステム、特に VMS では +対応していません。 =item Can't modify %s in %s @@ -1676,6 +1846,8 @@ =end original +(F) Subroutines meant to be used in lvalue context should be declared as +such, see L<perlsub/"Lvalue subroutines">. =item Can't msgrcv to read-only var @@ -1754,6 +1926,10 @@ =end original +(F) VMSに固有のエラーです。 +Perl does its own command line +redirection, and couldn't open the file specified after '2>' or '2>>' on +the command line for writing. =item Can't open input file %s as stdin @@ -1765,6 +1941,10 @@ =end original +(F) VMSに固有のエラーです。 +Perl does its own command line +redirection, and couldn't open the file specified after '<' on the +command line for reading. =item Can't open output file %s as stdout @@ -1776,6 +1956,10 @@ =end original +(F) VMSに固有のエラーです。 +Perl does its own command line +redirection, and couldn't open the file specified after '>' or '>>' on +the command line for writing. =item Can't open output pipe (name: %s) @@ -1787,6 +1971,10 @@ =end original +(P) VMSに固有のエラーです。 +Perl does its own command line +redirection, and couldn't open the pipe into which to send data destined +for stdout. =item Can't open perl script "%s": %s @@ -1810,6 +1998,12 @@ =end original +(S) VMSに固有のエラーです。 +Perl tried to read an element of %ENV +from the CRTL's internal environment array and discovered the array was +missing. You need to figure out where your CRTL misplaced its environ +or define F<PERL_ENV_TABLES> (see L<perlvms>) so that environ is not +searched. =item Can't redefine active sort subroutine %s @@ -1822,6 +2016,12 @@ =end original +(F) Perl はソートサブルーチンの内部操作を最適化して、 +そこへのポインタを保持しています。 +そのようなソートサブルーチンを現在アクティブな状態の時に +再定義しようとしましたが、それはできません。 +本当にそのようなことがしたい場合は、 +C<sort func @x> ではなく C<sort { &func } @x> と書くべきです。 =item Can't "redo" outside a loop block @@ -1854,6 +2054,10 @@ =end original +(S inplace) バックアップを作成せずにその場編集することを要求しました。 +Perl は変更したファイルで置き換えるために元のファイルを削除することが +できませんでした。 +ファイルは変更されずに残されます。 =item Can't rename %s to %s: %s, skipping file @@ -1877,6 +2081,9 @@ =end original +(P) VMS に固有のエラーです。 +Perl thought stdin was a pipe, and tried +to reopen it to accept binary data. Alas, it failed. =item Can't resolve method `%s' overloading `%s' in package `%s' @@ -1888,6 +2095,9 @@ =end original +(F|P) Error resolving overloading specified by a method name (as opposed +to a subroutine reference): no such method callable via the package. If +method name is C<???>, this is an internal error. =item Can't reswap uid and euid @@ -1911,6 +2121,9 @@ =end original +(F) Perl detected an attempt to return illegal lvalues (such as +temporary or readonly values) from a subroutine used as an lvalue. This +is not allowed. =item Can't return %s to lvalue scalar context @@ -1924,6 +2137,11 @@ =end original +(F) You tried to return a complete array or hash from an lvalue subroutine, +but you called the subroutine in a way that made Perl think you meant +to return only one value. You probably meant to write parentheses around +the call to the subroutine, which tell Perl that the call should be in +list context. =item Can't return outside a subroutine @@ -1973,6 +2191,10 @@ =end original +(F) For ordinary real numbers, you can't take the logarithm of a +negative number or zero. There's a Math::Complex package that comes +standard with Perl, though, if you really want to do that for the +negative numbers. =item Can't take sqrt of %g @@ -2001,7 +2223,7 @@ (F) 実行中のルーティンを未定義にすることはできません。 しかし、実行中に再定義することはでき、古いルーティンを実行中に、 再定義したサブルーティンを undef することさえできます。 -Go figure。 +驚きです。 =item Can't unshift @@ -2081,6 +2303,10 @@ =end original +(F) 最初に %! ハッシュが使われるときに、 +perl は自動的に Errno.pm モジュールを読み込みます。 +Errno モジュールは C<$!> errno 値のシンボリック名を提供するために +%! ハッシュと tie されることになります。 =item Can't use %s for loop variable @@ -2123,6 +2349,11 @@ =end original +(F) The global variables $a and $b are reserved for sort comparisons. +You mentioned $a or $b in the same line as the <=> or cmp operator, +and the variable had earlier been declared as a lexical variable. +Either qualify the sort variable with the package name, or rename the +lexical variable. =item Can't use %s ref as %s ref @@ -2147,6 +2378,8 @@ =end original +(F) Only hard references are allowed by "strict refs". Symbolic +references are disallowed. See L<perlref>. =item Can't use subscript on %s @@ -2158,6 +2391,9 @@ =end original +(F) The compiler tried to interpret a bracketed expression as a +subscript. But to the left of the brackets was an expression that +didn't look like an array reference, or anything else subscriptable. =item Can't use \%c to mean $%c in expression @@ -2172,6 +2408,12 @@ =end original +(W syntax) In an ordinary expression, backslash is a unary operator that +creates a reference to its argument. The use of backslash to indicate a +backreference to a matched substring is valid only as part of a regular +expression pattern. Trying to do this in ordinary Perl code produces a +value that prints out looking like SCALAR(0xdecaf). Use the $1 form +instead. =item Can't weaken a nonreference @@ -2182,6 +2424,8 @@ =end original +(F) You attempted to weaken something that was not a reference. Only +references can be weakened. =item Can't x= to read-only value @@ -2240,6 +2484,8 @@ =end original +(A) スクリプトを perl ではなく B<csh> で実行しようとしました。 +#! 行をチェックするか、スクリプトを直接 Perl で起動してください。 =item Compilation failed in require @@ -2251,6 +2497,9 @@ =end original +(F) Perl could not compile a file specified in a C<require> statement. +Perl uses this generic message when none of the errors that it +encountered were severe enough to halt compilation immediately. =item Complex regular subexpression recursion limit (%d) exceeded @@ -2268,6 +2517,15 @@ =end original +(W regexp) The regular expression engine uses recursion in complex +situations where back-tracking is required. Recursion depth is limited +to 32766, or perhaps less in architectures where the stack cannot grow +arbitrarily. ("Simple" and "medium" situations are handled without +recursion and are not subject to a limit.) Try shortening the string +under examination; looping in Perl code (e.g. with C<while>) rather than +in the regular expression engine; or rewriting the regular expression so +that it is simpler or backtracks less. (See L<perlfaq2> for information +on I<Mastering Regular Expressions>.) =item connect() on closed socket %s @@ -2295,6 +2553,11 @@ =end original +(F) The parser found inconsistencies either while attempting to define +an overloaded constant, or when trying to find the character name +specified in the C<\N{...}> escape. Perhaps you forgot to load the +corresponding C<overload> or C<charnames> pragma? See L<charnames> and +L<overload>. =item Constant is not %s reference @@ -2308,6 +2571,11 @@ =end original +(F) A constant value (perhaps declared using the C<use constant> pragma) +is being dereferenced, but it amounts to the wrong type of reference. +The message indicates the type of reference that was expected. This +usually indicates a syntax error in dereferencing the constant value. +See L<perlsub/"Constant Functions"> and L<constant>. =item Constant subroutine %s redefined @@ -2319,6 +2587,9 @@ =end original +(S|W redefine) You redefined a subroutine which had previously been +eligible for inlining. See L<perlsub/"Constant Functions"> for +commentary and workarounds. =item Constant subroutine %s undefined @@ -2330,6 +2601,9 @@ =end original +(W misc) You undefined a subroutine which had previously been eligible +for inlining. See L<perlsub/"Constant Functions"> for commentary and +workarounds. =item Copy method did not return a reference @@ -2340,6 +2614,8 @@ =end original +(F) "=" をオーバーロードしたメソッドはバグっています。 +L<overload/Copy Constructor> を参照してください。 =item CORE::%s is not a keyword @@ -2349,6 +2625,7 @@ =end original +(F) CORE:: 名前空間は Perl キーワードとして予約されています。 =item corrupted regexp pointers @@ -2394,6 +2671,9 @@ =end original +(F) C<-p> コマンドラインオプションで起動された +暗黙の出力中にエラーが発生しました。 +(この出力は select() でリダイレクトしていない限り STDOUT に出力されます。) =item C<-T> and C<-B> not implemented on filehandles @@ -2435,6 +2715,9 @@ =end original +(D deprecated) defined() is not usually useful on arrays because it +checks for an undefined I<scalar> value. If you want to see if the +array is empty, just use C<if (@array) { # not empty }> for example. =item defined(%hash) is deprecated @@ -2446,6 +2729,9 @@ =end original +(D deprecated) defined() is not usually useful on hashes because it +checks for an undefined I<scalar> value. If you want to see if the hash +is empty, just use C<if (%hash) { # not empty }> for example. =item Delimiter for here document is too long @@ -2457,6 +2743,9 @@ =end original +(F) In a here document construct like C<<<FOO>, the label C<FOO> is too +long for Perl to handle. You have to be seriously twisted to write code +that triggers this error. =item Did not produce a valid header @@ -2466,6 +2755,7 @@ =end original +"Server error" を参照してください。 =item %s did not return a true value @@ -2493,6 +2783,8 @@ =end original +おそらく import したサブルーチン &FOO を $FOO として +参照したようなことでしょう。 =item (Did you mean "local" instead of "our"?) @@ -2504,6 +2796,10 @@ =end original +(W misc) "our" 宣言されたグローバル変数を local 化しないことを +忘れないで下さい。 +これをもう一度同じレキシカルスコープで宣言していますが、 +不必要でしょう。 =item (Did you mean $ or @ instead of %?) @@ -2515,6 +2811,9 @@ =end original +(W) You probably said %hash{$key} when you meant $hash{$key} or + @ hash{@keys}. On the other hand, maybe you just meant %hash and got +carried away. =item Died @@ -2525,6 +2824,8 @@ =end original +(F) You passed die() an empty string (the equivalent of C<die "">) or +you called it with no args and both C<$@> and C<$_> were empty. =item Document contains no data @@ -2534,6 +2835,7 @@ =end original +"Server error" を参照してください。 =item Don't know how to handle magic of type '%s' @@ -2570,6 +2872,14 @@ =end original +(S) This is an educated guess made in conjunction with the message "%s +found where operator expected". It often means a subroutine or module +name is being referenced that hasn't been declared yet. This may be +because of ordering problems in your file, or because of a missing +"sub", "package", "require", or "use" statement. If you're referencing +something that isn't defined yet, you don't actually have to define the +subroutine or package before the current location. You can use an empty +"sub foo;" or "package FOO;" to enter a "forward" declaration. =item Duplicate free() ignored @@ -2594,6 +2904,10 @@ =end original +(S) There is no keyword "elseif" in Perl because Larry thinks it's ugly. +Your code will be interpreted as an attempt to call a method named +"elseif" for the class returned by the following block. This is +unlikely to be what you want. =item entering effective %s failed @@ -2604,6 +2918,8 @@ =end original +(F) C<use filetest> プラグマを使っている間に、 +実と実効の UID や GID の切り替えに失敗しました。 =item Error converting file specification %s @@ -2617,6 +2933,12 @@ =end original +(F) VMS に固有のエラーです。 +Because Perl may have to deal with file +specifications in either VMS or Unix syntax, it converts them to a +single form when it must operate on them directly. Either you've passed +an invalid file specification to Perl, or you've found a case the +conversion routines don't handle. Drat. =item %s: Eval-group in insecure regular expression @@ -2628,6 +2950,9 @@ =end original +(F) Perl detected tainted data when trying to compile a regular +expression that contains the C<(?{ ... })> zero-width assertion, which +is unsafe. See L<perlre/(?{ code })>, and L<perlsec>. =item %s: Eval-group not allowed at run time @@ -2642,6 +2967,12 @@ =end original +(F) Perl tried to compile a regular expression containing the +C<(?{ ... })> zero-width assertion at run time, as it would when the +pattern contains interpolated values. Since that is a security risk, it +is not allowed. If you insist, you may still do this by explicitly +building the pattern from an interpolated string at run time and using +that in an eval(). See L<perlre/(?{ code })>. =item %s: Eval-group not allowed, use re 'eval' @@ -2653,6 +2984,9 @@ =end original +(F) A regular expression contained the C<(?{ ... })> zero-width +assertion, but that construct is only allowed when the C<use re 'eval'> +pragma is in effect. See L<perlre/(?{ code })>. =item Excessively long <> operator @@ -2665,6 +2999,10 @@ =end original +(F) The contents of a <> operator may not exceed the maximum size of a +Perl identifier. If you're just trying to glob a long list of +filenames, try using the glob() operator, or put the filenames into a +variable and glob that. =item Execution of %s aborted due to compilation errors @@ -2696,6 +3034,8 @@ =end original +(W exiting) You are exiting an eval by unconventional means, such as a +goto, or a loop control statement. =item Exiting pseudo-block via %s @@ -2707,6 +3047,9 @@ =end original +(W exiting) You are exiting a rather special block construct (like a +sort block or subroutine) by unconventional means, such as a goto, or a +loop control statement. See L<perlfunc/sort>. =item Exiting subroutine via %s @@ -2743,6 +3086,10 @@ =end original +(W misc) You are blessing a reference to a zero length string. This has +the effect of blessing the reference into the package main. This is +usually not what you want. Consider providing a default target package, +e.g. bless($ref, $p || 'MyPackage'); =item %s: Expression syntax @@ -2753,6 +3100,8 @@ =end original +(A) スクリプトを perl ではなく B<csh> で実行しようとしました。 +#! 行をチェックするか、スクリプトを直接 Perl で起動してください。 =item %s failed--call queue aborted @@ -2764,6 +3113,9 @@ =end original +(F) An untrapped exception was raised while executing a CHECK, INIT, or +END subroutine. Processing of the remainder of the queue of such +routines has been prematurely ended. =item false [] range "%s" in regexp @@ -2776,6 +3128,10 @@ =end original +(W regexp) A character class range must start and end at a literal +character, not another character class like C<\d> or C<[:alpha:]>. The +"-" in your false range is interpreted as a literal "-". Consider +quoting the "-", "\-". See L<perlre>. =item Fatal VMS error at %s, line %d @@ -2788,6 +3144,11 @@ =end original +(P) VMS に固有のエラーです。 +Something untoward happened in a VMS +system service or RTL routine; Perl's exit status should provide more +details. The filename in "at %s" and the line number in "line %d" tell +you which section of the Perl source code is distressed. =item fcntl is not implemented @@ -2878,6 +3239,10 @@ =end original +(W closed) The filehandle you're attempting to flock() got itself closed +some time before now. Check your logic flow. flock() operates on +filehandles. Are you attempting to call flock() on a dirhandle by the +same name? =item Quantifier follows nothing before << HERE in regex m/%s/ @@ -2889,6 +3254,9 @@ =end original +(F) You started a regular expression with a quantifier. Backslash it if you +meant it literally. The << HERE shows in the regular expression about where the +problem was discovered. See L<perlre>. =item Format not terminated @@ -2936,7 +3304,7 @@ =end original -以下のようにすべきです: +以下のようにするべきところでしょう: if ($foo == 123) @@ -2997,6 +3365,8 @@ =end original +(W closed) You tried to get a socket or peer socket name on a closed +socket. Did you forget to check the return value of your socket() call? =item getpwnam returned invalid UIC %#o for user "%s" @@ -3007,6 +3377,9 @@ =end original +(S) VMS に固有の警告です。 +C<getpwnam> 演算子の基礎となる C<sys$getuai> 呼び出しで +不正な UIC が返されました。 =item getsockopt() on closed socket %s @@ -3056,6 +3429,17 @@ =end original +(W glob) Something went wrong with the external program(s) used for +C<glob> and C<< <*.c> >>. Usually, this means that you supplied a +C<glob> pattern that caused the external program to fail and exit with a +nonzero status. If the message indicates that the abnormal exit +resulted in a coredump, this may also mean that your csh (C shell) is +broken. If so, you should change all of the csh-related variables in +config.sh: If you have tcsh, make the variables refer to it as if it +were csh (e.g. C<full_csh='/usr/bin/tcsh'>); otherwise, make them all +empty (except that C<d_csh> should be C<'undef'>) so that Perl will +think csh is missing. In either case, after editing config.sh, run +C<./Configure -S> and rebuild Perl. =item Glob not terminated @@ -3082,6 +3466,9 @@ =end original +(P) OS/2 に固有のエラーです。 +もっともありそうなのは廃止されたバージョンの Perl を使っていることで、 +どちらにしてもこのエラーは起きないはずです。 =item goto must have label @@ -3156,6 +3543,9 @@ =end original +(W portable) The hexadecimal number you specified is larger than 2**32-1 +(4294967295) and therefore non-portable between systems. See +L<perlport> for more on portability concerns. =item Identifier too long @@ -3168,6 +3558,10 @@ =end original +(F) Perl limits identifiers (names for variables, functions, etc.) to +about 250 characters for simple names, and somewhat more for compound +names (like C<$A::B>). You've exceeded Perl's limits. Future versions +of Perl are likely to eliminate these arbitrary limitations. =item Illegal binary digit %s @@ -3177,6 +3571,7 @@ =end original +(F) 2 進数として 0 と 1 以外の数値を使っています。 =item Illegal binary digit %s ignored @@ -3188,6 +3583,8 @@ =end original +(W digit) 2 進数として 0 と 1 以外の数値を使おうとしたのでしょう。 +2 進数の解釈は問題のある数値の手前で停止しました。 =item Illegal character %s (carriage return) @@ -3201,6 +3598,11 @@ =end original +(F) Perl normally treats carriage returns in the program text as it +would any other whitespace, which means you should never see this error +when Perl was built using standard options. For some reason, your +version of Perl appears to have been built without this support. Talk +to your Perl administrator. =item Illegal division by zero @@ -3226,6 +3628,9 @@ =end original +(W digit) You may have tried to use a character other than 0 - 9 or +A - F, a - f in a hexadecimal number. Interpretation of the hexadecimal +number stopped before the illegal character. =item Illegal modulus zero @@ -3248,6 +3653,8 @@ =end original +(F) vec() のビット数 (第三引数) は 1 から 32 (プラットフォームが +対応している場合は 64) までの、2 のべき乗でなければなりません。 =item Illegal octal digit %s @@ -3268,6 +3675,8 @@ =end original +(W digit) 8 進数で 8 か 9 を使おうとしたのでしょう。 +8 進数の解釈は 8 か 9 の手前で停止しました。 =item Illegal switch in PERL5OPT: %s @@ -3278,6 +3687,8 @@ =end original +(X) PERL5OPT 環境変数で設定できるのは B<-[DIMUdmw]> の +オプションだけです。 =item Ill-formed CRTL environ value "%s" @@ -3289,6 +3700,10 @@ =end original +(W internal) VMS 固有の警告です。 +Perl tried to read the CRTL's +internal environ array, and encountered an element without the C<=> +delimiter used to separate keys from values. The element is ignored. =item Ill-formed message in prime_env_iter: |%s| @@ -3301,6 +3716,11 @@ =end original +(W internal) VMS 固有の警告です。 +Perl tried to read a logical +name or CLI symbol definition when preparing to iterate over %ENV, and +didn't see the expected delimiter between key and value, so the line was +ignored. =item (in cleanup) %s @@ -3314,6 +3734,11 @@ =end original +(W misc) This prefix usually indicates that a DESTROY() method raised +the indicated exception. Since destructors are usually called by the +system at arbitrary points during execution, and often a vast number of +times, the warning is issued only once for any number of failures that +would otherwise result in the same message being repeated. =begin original @@ -3322,6 +3747,8 @@ =end original +Failure of user callbacks dispatched using the C<G_KEEPERR> flag could +also result in this warning. See L<perlcall/G_KEEPERR>. =item Insecure dependency in %s @@ -3373,6 +3800,11 @@ =end original +(F) You can't use system(), exec(), or a piped open in a setuid or +setgid script if any of C<$ENV{PATH}>, C<$ENV{IFS}>, C<$ENV{CDPATH}>, +C<$ENV{ENV}> or C<$ENV{BASH_ENV}> are derived from data supplied (or +potentially supplied) by the user. The script must set the path to a +known value, using trustworthy data. See L<perlsec>. =item Integer overflow in %s number @@ -3390,6 +3822,15 @@ =end original +(W overflow) The hexadecimal, octal or binary number you have specified +either as a literal or as an argument to hex() or oct() is too big for +your architecture, and has been converted to a floating point number. +On a 32-bit architecture the largest hexadecimal, octal or binary number +representable without overflow is 0xFFFFFFFF, 037777777777, or +0b11111111111111111111111111111111 respectively. Note that Perl +transparently promotes all numbers to a floating point representation +internally--subject to loss of precision errors in subsequent +operations. =item Internal disaster before << HERE in regex m/%s/ @@ -3417,6 +3858,12 @@ =end original +(S) A warning peculiar to VMS. Perl keeps track of the number of times +you've called C<fork> and C<exec>, to determine whether the current call +to C<exec> should affect the current script or a subprocess (see +L<perlvms/"exec LIST">). Somehow, this count has become scrambled, so +Perl is making a guess and treating this C<exec> as a request to +terminate the Perl script and execute the specified command. =item Internal urp before << HERE in regex m/%s/ @@ -3454,6 +3901,9 @@ =end original +示されたサブルーチンや変数の属性は +Perl やユーザー提供のハンドラで認識されませんでした。 +L<attributes> を参照してください。 =item Invalid %s attributes: %s @@ -3464,6 +3914,9 @@ =end original +示されたサブルーチンや変数の属性は +Perl やユーザー提供のハンドラで認識されませんでした。 +L<attributes> を参照してください。 =item Invalid conversion in %s: "%s" @@ -3474,6 +3927,8 @@ =end original +(W printf) Perl は指定されたフォーマット変換が認識できませんでした。 +L<perlfunc/sprintf> を参照してください。 =item invalid [] range "%s" in regexp @@ -3498,6 +3953,10 @@ =end original +(F) Something other than a colon or whitespace was seen between the +elements of an attribute list. If the previous attribute had a +parenthesised parameter list, perhaps that list was terminated too soon. +See L<attributes>. =item Invalid type in pack: '%s' @@ -3509,6 +3968,9 @@ =end original +(F) The given character is not a valid pack type. See L<perlfunc/pack>. +(W pack) The given character is not a valid pack type but used to be +silently ignored. =item Invalid type in unpack: '%s' @@ -3521,6 +3983,10 @@ =end original +(F) The given character is not a valid unpack type. See +L<perlfunc/unpack>. +(W unpack) The given character is not a valid unpack type but used to be +silently ignored. =item ioctl is not implemented @@ -3544,6 +4010,9 @@ =end original +(W) The second (fourth, sixth, ...) argument of overload::constant needs +to be a code reference. Either an anonymous subroutine, or a reference +to a subroutine. =item `%s' is not an overloadable type @@ -3553,6 +4022,7 @@ =end original +(W) オーバーロードパッケージが知らない定数型をオーバーロードしようとしました。 =item junk on end of regexp @@ -3617,6 +4087,8 @@ =end original +(F) C<use filetest> プラグマを使っている間に、 +実と実効の UID や GID の切り替えに失敗しました。 =item listen() on closed socket %s @@ -6725,6 +7197,8 @@ =end original +(F) C<use filetest> プラグマを使っている間に、 +実と実効の UID や GID の切り替えに失敗しました。 =item syntax error @@ -6949,6 +7423,13 @@ =end original +(W internal) Warnings peculiar to VMS. You tried to change or delete an +element of the CRTL's internal environ array, but your copy of Perl +wasn't built with a CRTL that contained the setenv() function. You'll +need to rebuild Perl with a CRTL that does, or redefine +F<PERL_ENV_TABLES> (see L<perlvms>) so that the environ array isn't the +target of the change to +%ENV which produced the warning. =item times not implemented @@ -6986,6 +7467,11 @@ =end original +(X) The #! line (or local equivalent) in a Perl script contains the +B<-T> option, but Perl was not invoked with B<-T> in its command line. +This is an error because, by the time Perl discovers a B<-T> in a +script, it's too late to properly taint everything from the environment. +So Perl gives up. =begin original @@ -6996,6 +7482,10 @@ =end original +If the Perl script is being executed as a command using the #! +mechanism (or its local equivalent), this error can usually be fixed by +editing the #! line so that the B<-T> option is a part of Perl's first +argument: e.g. change C<perl -n -T> to C<perl -T -n>. =begin original @@ -7004,6 +7494,8 @@ =end original +If the Perl script is being executed as C<perl scriptname>, then the +B<-T> option must appear on the command line: C<perl -T scriptname>. =item Too late for "-%s" option @@ -7015,6 +7507,9 @@ =end original +(X) The #! line (or local equivalent) in a Perl script contains the +B<-M> or B<-m> option. This is an error because B<-M> and B<-m> options +are not intended for use inside scripts. Use the C<use> pragma instead. =item Too late to run %s block @@ -7028,6 +7523,11 @@ =end original +(W void) A CHECK or INIT block is being defined during run time proper, +when the opportunity to run them has already passed. Perhaps you are +loading a file with C<require> or C<do> when you should be using C<use> +instead. Or perhaps you should put the C<require> or C<do> inside a +BEGIN block. =item Too many args to syscall @@ -7153,6 +7653,8 @@ =end original +(F) Your machine doesn't implement the umask function and you tried to +use it to restrict permissions for yourself (EXPR & 0700). =item Unable to create sub named "%s" @@ -7162,6 +7664,7 @@ =end original +(F) 不正な名前のサブルーチンを作成または呼び出ししようとしました。 =item Unbalanced context: %d more PUSHes than POPs @@ -7283,6 +7786,9 @@ =end original +(F) 示されたフォーマットが存在しないようです。 +おそらく本当は他のパッケージにあるのでは? +L<perlform> を参照してください。 =item Undefined value assigned to typeglob @@ -7294,6 +7800,9 @@ =end original +(W misc) C<*foo = undef> のように、未定義値を型グロブに代入しました。 +これは何もしません。 +本当は C<undef *foo> としたかったのかもしれません。 =item %s: Undefined variable @@ -7304,6 +7813,8 @@ =end original +(A) スクリプトを perl ではなく B<csh> で実行しようとしました。 +#! 行をチェックするか、スクリプトを直接 Perl で起動してください。 =item unexec of %s into %s failed! @@ -7340,6 +7851,11 @@ =end original +(F) The condition of a (?(condition)if-clause|else-clause) construct is not +known. The condition may be lookaround (the condition is true if the +lookaround is true), a (?{...}) construct (the condition is true if the +code evaluates to a true value), or a number (the condition is true if the +set of capturing parentheses named by the number is defined). =begin original @@ -7348,6 +7864,8 @@ =end original +<< HERE で正規表現のどこに問題が発見されたかを示しています。 +L<perlre> を参照してください。 =item Unknown open() mode '%s' @@ -7359,6 +7877,10 @@ =end original +(F) 3 引数 open() の 第 2 引数が以下の有効なモードの +どれでもありませんでした: +C<< < >>, C<< > >>, C<<< >> >>>, C<< +< >>, +C<< +> >>, C<<< +>> >>>, C<-|>, C<|->. =item Unknown process %x sent message to prime_env_iter: %s @@ -7371,6 +7893,11 @@ =end original +(P) VMS 固有のエラーです。 +Perl was reading values for %ENV before +iterating over it, and someone else stuck a message in the stream of +data Perl expected. Someone's very confused, or perhaps trying to +subvert Perl's population of %ENV for nefarious purposes. =item unmatched [ before << HERE mark in regex m/%s/ @@ -7383,6 +7910,10 @@ =end original +(F) The brackets around a character class must match. If you wish to +include a closing bracket in a character class, backslash it or put it +first. See L<perlre>. The << HERE shows in the regular expression about +where the escape was discovered. =item unmatched ( in regexp before << HERE mark in regex m/%s/ @@ -7394,6 +7925,9 @@ =end original +(F) Unbackslashed parentheses must always be balanced in regular +expressions. If you're a vi user, the % key is valuable for finding the +matching parenthesis. See L<perlre>. =item Unmatched right %s bracket @@ -7438,6 +7972,9 @@ =end original +(F) The Perl parser has no idea what to do with the specified character +in your Perl script (or eval). Perhaps you tried to run a compressed +script, a binary program, or a directory as a Perl program. =item /%s/: Unrecognized escape \\%c in character class passed through @@ -7449,6 +7986,9 @@ =end original +(W regexp) You used a backslash-character combination which is not +recognized by Perl inside character classes. The character was +understood literally. =item Unrecognized escape \\%c passed through before << HERE in m/%s/ @@ -7462,7 +8002,11 @@ =end original - +(W regexp) You used a backslash-character combination which is not +recognized by Perl. This combination appears in an interpolated variable or +a C<'>-delimited regular expression. The character was understood +literally. The << HERE shows in the regular expression about where the escape +was discovered. =item Unrecognized escape \\%c passed through @@ -7473,6 +8017,8 @@ =end original +(W misc) Perl が理解できないバックスラッシュ-文字の組み合わせが +使われています。 =item Unrecognized signal name "%s" @@ -7549,6 +8095,7 @@ =end original +(F) この実行ファイルは fork に対応していません。 =begin original @@ -7558,6 +8105,9 @@ =end original +Note that under some systems, like OS/2, there may be different flavors +of Perl executables, some of which may support fork, some not. Try +changing the name you call Perl by to C<perl_>, C<perl__>, and so on. =item Unsupported script encoding @@ -7568,6 +8118,8 @@ =end original +(F) Your program file begins with a Unicode Byte Order Mark (BOM) which +declares it to be in a Unicode encoding that Perl cannot yet read. =item Unsupported socket function "%s" called @@ -7578,7 +8130,7 @@ =end original -(F) このマシンでは、バークレイのソケット機構がサポートされていないか、 +(F) このマシンでは、Berkeley ソケット機構がサポートされていないか、 少なくとも Configure がそう判断しました。 =item Unterminated attribute list @@ -7592,6 +8144,10 @@ =end original +(F) The lexer found something other than a simple identifier at the +start of an attribute, and it wasn't a semicolon or the start of a +block. Perhaps you terminated the parameter list of the previous +attribute too soon. See L<attributes>. =item Unterminated attribute parameter in attribute list @@ -7604,6 +8160,10 @@ =end original +(F) The lexer saw an opening (left) parenthesis character while parsing +an attribute list, but the matching closing (right) parenthesis +character was not found. You may need to add (or remove) a backslash +character to get your parentheses to balance. See L<attributes>. =item Unterminated compressed integer @@ -7615,6 +8175,9 @@ =end original +(F) unpack("w",...) の引数が BER 圧縮整数フォーマットと互換性がなく、 +整数に変換できませんでした。 +L<perlfunc/pack> を参照してください。 =item Unterminated <> operator @@ -7720,6 +8283,7 @@ =end original +(W) C<use re;> プラグマを引数なしで指定しました。これは無意味です。 =item "use" not allowed in expression @@ -7743,6 +8307,8 @@ =end original +(D deprecated) You are now encouraged to use the explicitly quoted form +if you wish to use an empty line as the terminator of the here-document. =item Use of implicit split to @_ is deprecated @@ -7770,6 +8336,11 @@ =end original +(D deprecated) As an (ahem) accidental feature, C<AUTOLOAD> subroutines +are looked up as methods (using the C<@ISA> hierarchy) even when the +subroutines to be autoloaded were called as plain functions (e.g. +C<Foo::bar()>), not as methods (e.g. C<< Foo->bar() >> or C<< +$obj->bar() >>). =begin original @@ -7781,6 +8352,11 @@ =end original +This bug will be rectified in future by using method lookup only for +methods' C<AUTOLOAD>s. However, there is a significant base of existing +code that may be using the old behavior. So, as an interim step, Perl +currently issues an optional warning when non-methods use inherited +C<AUTOLOAD>s. =begin original @@ -7792,6 +8368,11 @@ =end original +The simple rule is: Inheritance will not work when autoloading +non-methods. The simple fix for old code is: In any module that used +to depend on inheriting C<AUTOLOAD> for non-methods from a base class +named C<BaseClass>, execute C<*AUTOLOAD = \&BaseClass::AUTOLOAD> during +startup. =begin original @@ -7801,6 +8382,9 @@ =end original +In code that currently says C<use AutoLoader; @ISA = qw(AutoLoader);> +you should remove AutoLoader from @ISA and change C<use AutoLoader;> to +C<use AutoLoader 'AUTOLOAD';>. =item Use of %s in printf format not supported @@ -7811,6 +8395,8 @@ =end original +(F) C でのみアクセス可能な printf の機能を使おうとしました。 +これは普通 Perl で行うより良い方法があります。 =item Use of $* is deprecated @@ -7901,6 +8487,13 @@ =end original +To help you figure out what was undefined, perl tells you what operation +you used the undefined value in. Note, however, that perl optimizes your +program and the operation displayed in the warning may not necessarily +appear literally in your program. For example, C<"that $foo"> is +usually optimized into C<"that " . $foo>, and the warning will refer to +the C<concatenation (.)> operator, even though there is no C<.> in your +program. =item Value of %s can be "0"; test with defined() @@ -7915,6 +8508,12 @@ =end original +(W misc) In a conditional expression, you used <HANDLE>, <*> (glob), +C<each()>, or C<readdir()> as a boolean value. Each of these constructs +can return a value of "0"; that would make the conditional expression +false, which is probably not what you intended. When using these +constructs in conditional expressions, test their values with the +C<defined> operator. =item Value of CLI symbol "%s" too long @@ -7927,6 +8526,11 @@ =end original +(W misc) VMS 固有の警告です。 +Perl tried to read the value of an +%ENV element from a CLI symbol table, and found a resultant string +longer than 1024 characters. The return value has been truncated to +1024 characters. =item Variable "%s" is not imported%s @@ -7940,6 +8544,11 @@ =end original +(F) While "use strict" in effect, you referred to a global variable that +you apparently thought was imported from another module, because +something else of the same name (usually a subroutine) is exported by +that module. It usually means you put the wrong funny character on the +front of your variable. =item "%s" variable %s masks earlier declaration in same %s @@ -7953,6 +8562,11 @@ =end original +(W misc) A "my" or "our" variable has been redeclared in the current +scope or statement, effectively eliminating all access to the previous +instance. This is almost always a typographical error. Note that the +earlier variable will still exist until the end of the scope or until +all closure referents to it are destroyed. =item Variable "%s" may be unavailable @@ -7965,6 +8579,10 @@ =end original +(W closure) An inner (nested) I<anonymous> subroutine is inside a +I<named> subroutine, and outside that is another subroutine; and the +anonymous (innermost) subroutine is referencing a lexical variable +defined in the outermost subroutine. For example: sub outermost { my $a; sub middle { sub { $a } } } @@ -7979,6 +8597,12 @@ =end original +If the anonymous subroutine is called or referenced (directly or +indirectly) from the outermost subroutine, it will share the variable as +you would expect. But if the anonymous subroutine is called or +referenced when the outermost subroutine is not active, it will see the +value of the shared variable as it was before and during the *first* +call to the outermost subroutine, which is probably not what you want. =begin original @@ -7989,6 +8613,10 @@ =end original +In these circumstances, it is usually best to make the middle subroutine +anonymous, using the C<sub {}> syntax. Perl has specific support for +shared variables in nested anonymous subroutines; a named subroutine in +between interferes with this feature. =item Variable syntax @@ -8000,6 +8628,8 @@ =end original +(A) スクリプトを perl ではなく B<csh> で実行しようとしました。 +#! 行をチェックするか、スクリプトを直接 Perl で起動してください。 =item Variable "%s" will not stay shared @@ -8010,6 +8640,8 @@ =end original +(W closure) An inner (nested) I<named> subroutine is referencing a +lexical variable defined in an outer subroutine. =begin original @@ -8022,6 +8654,12 @@ =end original +When the inner subroutine is called, it will probably see the value of +the outer subroutine's variable as it was before and during the *first* +call to the outer subroutine; in this case, after the first call to the +outer subroutine is complete, the inner and outer subroutines will no +longer share a common value for the variable. In other words, the +variable will no longer be shared. =begin original @@ -8031,6 +8669,9 @@ =end original +Furthermore, if the outer subroutine is anonymous and references a +lexical variable outside itself, then the outer and inner subroutines +will I<never> share the given variable. =begin original @@ -8041,6 +8682,10 @@ =end original +This problem can usually be solved by making the inner subroutine +anonymous, using the C<sub {}> syntax. When inner anonymous subs that +reference variables in outer subroutines are called or referenced, they +are automatically rebound to the current values of such variables. =item Variable length lookbehind not implemented before << HERE in %s @@ -8052,6 +8697,9 @@ =end original +(F) Lookbehind is allowed only for subexpressions whose length is fixed and +known at compile time. The << HERE shows in the regular expression about where +the problem was discovered. =item Version number must be a constant number @@ -8063,6 +8711,9 @@ =end original +(P) The attempt to translate a C<use Module n.n LIST> statement into +its equivalent C<BEGIN> block found an internal inconsistency with +the version number. =item Warning: something's wrong @@ -8073,6 +8724,8 @@ =end original +(W) warn() に空文字列を渡した (C<warn ""> と透過です) か、 +引数なしで呼び出され、C<$_> も空でした。 =item Warning: unable to close filehandle %s properly