Go to the first, previous, next, last section, table of contents.
これらのメッセージは以下のように分類されます (重要度が増す順に並べてあり
ます):
- (W) 警告 (オプショナル)
- (D) A deprecation (オプショナル)
- (S) 重い警告 (必須)
- (F) 致命的エラー (トラップ可能)
- (P) 起こるはずのない内部エラー (トラップ可能)
- (X) 重大致命的エラー (トラップ不可能)
オプショナルな警告は、`-w' スイッチを使うことで現れます。トラップ可
能なエラーは、eval
演算子を使うことで、トラップすることができます。
See section 組み込み関数,の eval
の項を参照してください。
いくつかのメッセージは、汎用的なものです。可変の部分は、ちょうど printf
のフォーマットのように %s で表わしています。%s! で始まるメッセージもいく
つかありますので、注意が必要です。"%-?@ といったシンボルは、英字より前
に並べられ、[ と \ は、後に並べられています。
- "my" variable %s can't be in a package
-
(F) 字句スコープの変数は、パッケージ内に置かれませんので、頭にパッケージ
名を付けて宣言することは、無意味です。パッケージ変数をローカル化したい場
合には、
local()
を使ってください。
- "no" not allowed in expression
-
(F)
no
キーワードは、コンパイル時に認識され、実行されるもので、意
味のある値を返しません。See section モジュール,を参照してください。
- "use" not allowed in expression
-
(F)
use
キーワードは、コンパイル時に認識され、実行されるもので、
意味のある値を返しません。See section モジュール,を参照してください。
- % may only be used in unpack
-
(F) チェックサムを指定して
pack
を行なうことはできません。チェッ
クサム処理では、情報が失われ、どうしようもなくなるからです。
See section 組み込み関数,の unpack
の項を参照してください。
- %s (...) interpreted as function
-
(W) リスト演算子の直後に括弧を置くと、括弧内にあるリスト演算子引数を持つ
関数になる、という規則が適用されました。See section 演算子と優先順位,の「
See section 項とリスト演算子 (左方向),」の節を参照してください。
- %s argument is not a HASH element
-
(F)
delete()
や exists()
の引数は、
$foo{$bar}
$ref->[12]->{"susie"}
のようなハッシュの要素でなければなりません。
- %s did not return a true value
-
(F)
require
(や use
) されたファイルは、正常にコンパイルさ
れ、初期化コードを正しく実行したことを示すために、真を返さなければなりま
せん。こういったファイルは、"1;" で終わるようにするのが習慣ですが、真と
なる値であれば、何でもかまいません。組み込み関数
の require
の項を参照してください。
- %s found where operator expected
-
(S) Perl の字句解析部は、次に項が来るか、演算子が来るかを知っています。
次に演算子が来ると思っているときに、項であるとわかるものが現れると、この
警告が出ることになります。通常、演算子かセミコロンのような区切り文字が省
略されたことをしめします。
- %s had compilation errors.
-
(F) `perl -c' が失敗したときの最終まとめメッセージです。
- %s has too many errors.
-
(F) 構文解析部が、プログラム中に 10 個のエラーを見つけたため、それ以上の
解析を諦めました。それ以上のメッセージは、おそらく意味がないでしょう。
- %s matches null string many times
-
(W) 指定したパターンは、もし、正規表現エンジンがチェックを行なっていなけ
れば、無限ループに陥るものです。See section 正規表現,を参照してください。
- %s never introduced
-
(S) 問題のシンボルは、宣言されましたが、使われる前にスコープから外れてし
まいました。
- %s syntax OK
-
(F) `perl -c' が成功したときの最終まとめメッセージです。
- -P not allowed for setuid/setgid script
-
(F) C プリプロセッサがスクリプトをオープンするときには、名前でオープンし
なければいけませんが、これは、安全性を損なう競合条件をもたらします。
- -T and -B not implemented on filehandles
-
(F) Perl が、お使いの `stdio' のことをよく知らないとき、ファイルハ
ンドルの `stdio' バッファを覗くことはできません。代わりにファイル名
を使わなければなりません。
- ?+* follows nothing in regexp
-
(F) 正規表現を、数量子で始めてしまいました。その文字自体を表現したいので
あれば、バックスラッシュを付けてください。See section 正規表現,を参照してくだ
さい。
- @ outside of string
-
(F)
unpack
される文字列の外に絶対位置指定している、テンプレートを
指定しました。See section 組み込み関数,の pack
の項を参照してください。
- accept() on closed fd
-
(W) クローズされたソケットに
accept
を行なおうとしました。
socket()
の呼び出し時に、返却値のチェックを忘れたのではありません
か。See section 組み込み関数,の accept
の項を参照してください。
- Allocation too large: %lx
-
(F) MS-DOS マシンでは、64K を越えるメモリアロケートをおこなえません。
- Arg too short for msgsnd
-
(F)
msgsnd()
に渡す文字列は、少なくとも sizeof(long) の長さが必要
です。
- Args must match #! line
-
(F) setuid エミュレータでは、Perl を起動したときの引数と、#! の行で指定
された引数はマッチすることが要求されます。
- Argument "%s" isn't numeric
-
(W) ここに示した文字列は、数値が必要な演算子の引数として、与えられました。
運がよければ、このメッセージによって、どの演算子が問題となったかがわかり
ます。
- Array @%s missing the @ in argument %d of %s()
-
(D) 本当に古い Perl では、場所によっては、配列名の @ を省略できました。
この省略は、止めてください。
- assertion botched: %s
-
(P) Perl に付属の malloc ルーティンが内部エラーを起こした。
- Assertion failed: file "%s"
-
(P) 一般的なアサーションが失敗しました。問題の file を調べる必要がありま
す。
- Assignment to both a list and a scalar
-
(F) 条件演算子へ代入を行なう場合には、2 つめの引数と、3つめの引数は、と
もにスカラか、ともにリストでなければなりません。そうでないと、Perl は右
辺のコンテキストを決めることができません。
- Attempt to free non-arena SV: 0x%lx
-
(P) すべての `SV' オブジェクトは、
exit
時にガーベジコレクショ
ンが行なわれるアリーナに割り当てるようになっています。ある `SV' が、
そういったアリーナに入っていないことが、見つかりました。
- Attempt to free temp prematurely
-
(W) 消滅する値は、
free_tmps()
ルーティンで解放されるようになって
います。このメッセージは、free_tmps()
ルーティンの前に何ものかが、
`SV' を解放しようとしていることを示していて、これは、
free_tmps()
が解放しようとしたときには、どこからも参照されていな
いスカラを解放することになるということです。
- Attempt to free unreferenced glob pointers
-
(P) シンボルのエイリアスについて、参照カウントの値がおかしな状態になった。
- Attempt to free unreferenced scalar
-
(W) Perl がスカラの参照カウントをデクリメントしようとして、0 になるかを
見たところ、既に 0 になっていることがわかりました。これは、既に解放され
ているべきものであり、実際は、おそらく、解放されたものでしょう。これは、
SvREFCNT_dec()
が必要以上に呼ばれたか、SvREFCNT_inc()
が必
要なときに呼ばれなかったか、`SV' が消滅すべきで無いときに消滅してし
まったか、メモリ異常になったことが考えられます。
- Bad arg length for %s, is %d, should be %d
-
(F)
msgctl()
、semctl()
、shmctl()
のいずれかに、間違っ
たサイズのバッファを渡してしまいました。C の言い方で書くと、正しいサイズ
はそれぞれ、sizeof(struct msqid_ds *)
、sizeof(struct
semid_ds *)
、sizeof(struct shmid_ds *)
です。
- Bad associative array
-
(P) 内部ハッシュルーティンで、ヌル `HV' ポインタを渡されたものがあっ
た。
- Bad filehandle: %s
-
(F) ファイルハンドルが必要なものに、シンボルを渡しましたが、そのシンボル
は、それに伴うファイルハンドルがありません。おそらく、
open()
を忘
れたか、別のパッケージで open()
したかでしょう。
- Bad free() ignored
-
(S) まず、
malloc()
されていないものに対して、内部ルーティンが
free()
を呼びました。
- Bad name after %s::
-
(F) パッケージプレフィクスでシンボル名を書き始めましたが、そのシンボルが
終了しませんでした。特に、クォートの外で、変数展開はできませんから、
$var = 'myvar';
$sym = mypack::$var;
は、
$var = 'myvar';
$sym = "mypack::$var";
と同じではありません。
- Bad symbol for array
-
(P) シンボルテーブルエントリではないものに、配列エントリを登録するような
内部要求があがった。
- Bad symbol for filehandle
-
(P) シンボルテーブルエントリではないものに、ファイルハンドルエントリを登
録するような内部要求があがった。
- Bad symbol for hash
-
(P) シンボルテーブルエントリではないものに、ハッシュエントリを登録するよ
うな内部要求があがった。
- BEGIN failed--compilation aborted
-
(F) BEGIN サブルーティンの実行中にトラップ不可能な例外が発生しました。コ
ンパイルは、即座に停止し、インタプリタは中止します。
- bind() on closed fd
-
(W) クローズされたソケットに
bind
を行なおうとしました。
socket()
の呼び出し時に、返却値のチェックを忘れたのではありません
か。See section 組み込み関数,の bind
の項を参照してください。
- Callback called exit
-
(F) 外部パッケージから
perl_call_sv()
で起動されたサブルーティン
が exit
を呼んで終了しました。
- Can't "last" outside a block
-
(F) 現在のブロックから脱出するために、
last
文を実行しましたが、残
念なことにブロックの中ではありませんでした。if
や else
の
ブロックは、「ループ風」ブロックではないので、勘違いしないでください。た
だし、中括弧を二重にすれば、内側の中括弧が、1 度だけループするブロックと
みなされますから、同じ効果が得られます。See section 組み込み関数, の
last
の項を参照してください。
- Can't "next" outside a block
-
(F) 現在のブロックの繰り返しを進めるために、
next
文を実行しました
が、ブロックの中ではありませんでした。if
や else
のブロッ
クは、「ループ風」ブロックではないので、勘違いしないでください。ただし、
中括弧を二重にすれば、内側の中括弧が、1 度だけループするブロックとみなさ
れますから、同じ効果が得られます。See section 組み込み関数,の next
の項
を参照してください。
- Can't "redo" outside a block
-
(F) 現在のブロックの繰り返しをもう一度行なうために、
redo
文を実行
しましたが、ブロックの中ではありませんでした。if
や else
のブロックは、「ループ風」ブロックではないので、勘違いしないでください。
ただし、中括弧を二重にすれば、内側の中括弧が、1 度だけループするブロック
とみなされますから、同じ効果が得られます。See section 組み込み関数,の
redo
の項を参照してください。
- Can't bless non-reference value
-
(F) ハードリファレンスのみが bless できます。これによって、Perl はオブジェ
クトのカプセル化を「強制」します。See section オブジェクト,を参照してください。
- Can't break at that line
-
(S) デバッガで実行中に出力される警告で、指定された行番号は、停止可能な実
行文の場所ではないことを示しています。
- Can't call method "%s" in empty package "%s"
-
(F) 正しくメソッドを呼び出し、それは、クラスとして機能するパッケージを正
しく示していますが、そのパッケージには、何も定義されておらず、メソッドだ
けになっています。See section オブジェクト,を参照してください。
- Can't call method "%s" on unblessed reference
-
(F) メソッド呼び出しは、自分が呼び出されたパッケージがどれであるかを知る
必要があります。普通は、渡したオブジェクトリファレンスからその情報を受け
取りますが、この場合にはオブジェクトリファレンスが渡されませんでした。リ
ファレンスは、
bless
されて始めて、オブジェクトリファレンスとなり
ます。See section オブジェクト,を参照してください。
- Can't call method "%s" without a package or object reference
-
(F) メソッド呼び出しの構文を用いましたが、オブジェクトリファレンス、もし
くはパッケージ名が書かれるべき場所に、オブジェクトリファレンスもパッケー
ジ名も返さない式が書かれています。(おそらく、何も書いてないかもしれませ
ん。)以下のようなものは、エラーとなります:
$BADREF = undef;
process $BADREF 1,2,3;
$BADREF->process(1,2,3);
- Can't chdir to %s
-
(F) `perl -x/foo/bar' のようにして起動したが、`/foo/bar' に
chdir
することができません。おそらく、存在しないのでは、ないでしょ
うか。
- Can't coerce %s to integer in %s
-
(F) ある種の `SV'、特に本物のシンボルテーブルエントリ (型グロブ) は、
1つの型に留めておくことができません。したがって、
*foo += 1;
とすることはできません。
$foo = *foo;
$foo += 1;
とすることはできますが、$foo
にはもはやグロブは残っていません。
- Can't coerce %s to number in %s
-
(F) ある種の `SV'、特に本物のシンボルテーブルエントリ (型グロブ) は、
1つの型に留めておくことができません。
- Can't coerce %s to string in %s
-
(F) ある種の `SV'、特に本物のシンボルテーブルエントリ (型グロブ) は、
1 つの型に留めておくことができません。
- Can't create pipe mailbox
-
(F) VMS 特有のエラーです。
- Can't declare %s in my
-
(F) スカラ変数、配列変数、ハッシュ変数だけが、字句スコープの変数として宣
言できます。これらは、名前として通常の識別子を持たなければなりません。
- Can't do inplace edit on %s: %s
-
(S) 表示された理由により、新しいファイルの生成に失敗しました。
- Can't do inplace edit without backup
-
(F) 削除した (が、まだオープンされている) ファイルを読もうとするとおかし
くなる MS-DOS のようなシステムで実行しています。`-i.bak' のようにバッ
クアップを指定してください。
- Can't do inplace edit: %s > 14 characters
-
(S) そのファイルのバックアップ名を作ると、ファイル名の長さの制限をオーバ
してしまいます。
- Can't do inplace edit: %s is not a regular file
-
(S) `/dev' や FIFO のような、特殊ファイルに対して、`-i' スイッ
チを使おうとしました。そのファイルは、無視されました。
- Can't do setegid!
-
(P) suidperl の setuid エミュレータで何らかの理由により、
setegid()
呼び出しが失敗しました。
- Can't do seteuid!
-
(P) suidperl の setuid エミュレータが何らかの理由によって失敗しました。
- Can't do setuid
-
(F) このエラーは、通常、普通の perl が setuid エミュレーションのために
suidperl を実行しようとしましたが、実行できなかったことを意味します。特
に UNIX マシンの`/usr/local/bin' などでは、perl の実行ファイルが、
perl5.000 という名前のときには、同じディレクトリで sperl5.000 という形式
の名前を探します。もし、ファイルが存在していれば、実行パーミッションをチェッ
クしてください。許可されていないようであれば、システム管理者の方に、わけ
を尋ねてみてください。
- Can't do waitpid with flags
-
(F) このマシンには、
waitpid()
も wait4()
もありませんので、
フラグの無い waitpid()
のみがエミュレート可能です。
- Can't do {n,m with n > m}
-
(F) 最小値は最大値以下でなければなりません。もし、本当に正規表現が0回繰
り返したものにマッチさせたいなら、単に {0} としてください。
See section 正規表現,を参照してください。
- Can't emulate -%s on #! line
-
(F) #! 行にその時点で意味をなさないスイッチが指定されました。たとえば、
#! 行に `-x' をおいても意味がありません。
- Can't exec "%s": %s
-
(W) 提示した理由によって、
system()
や exec()
やパイプオー
プン呼び出しの指定されたプログラムが実行できませんでした。考えられる理由
には: ファイルのパーミッションが間違っている、ファイルが
$ENV{PATH} の中にない、問題の実行ファイルがこのマシン用ではない、
スクリプトの #! 行が同じような理由で実行できないインタプリタを指している、
というようなものがあります。(あるいは、このシステムで、#! がサポートされ
ていなません。)
- Can't exec %s
-
(F) #! 行に書かれた内容にしたがって、Perl は示されたプログラムを実行しよ
うとしました。そうしたくないのであれば、#! 行のどこかに、"perl" と書いて
おいてください。
- Can't execute %s
-
(F) `-S' スイッチを使いましたが、実行するスクリプトが PATH の
中に見つかりませんでした。少なくとも、正しいパーミッションではないと思わ
れます。
- Can't find label %s
-
(F) どこにも見つからないラベルへ
goto
を行なおうとしました。
See section 組み込み関数,の goto
の項を参照してください。
- Can't find string terminator %s anywhere before EOF
-
(F) Perl の文字列は、複数行に渡ることができます。このメッセージは、文字
列を終わる区切り文字が見つからなかったことを意味します。括弧類の区切り文
字では、ネストを数えるので、
print q(The character '(' starts a side comment.)
では、最後の括弧が無いと言われます。
- Can't fork
-
(F) パイプラインをオープンしようとして、
fork
を行なおうとして、致
命的エラーが発生しました。
- Can't get pipe mailbox device name
-
(F) VMS 特有のエラーです。
- Can't get SYSGEN parameter value for MAXBUF
-
(F) VMS 特有のエラーです。
- Can't goto subroutine outside a subroutine
-
(F) 結構マジカルな "goto subroutine" の呼び出しは、あるサブルーティン呼
び出しを別のもので置き換えるだけです。反物の状態から作り上げることはでき
ません。一般に、これを行なうのは、AUTOLOAD ルーティンから抜け出すときだ
けにしておくべきです。See section 組み込み関数,の
goto
の項を参照してく
ださい。
- Can't locate %s in @INC
-
(F) ファイルを
do
(または、require
、use
) するように
指示されましたが、@INC で示されるライブラリの中に見つかりませんでした。
おそらく、追加ライブラリの場所を示すために、PERL5LIB 環境変数を指
定する必要があるか、スクリプトの中で @INC にライブラリ名を追加する必要
があります。ファイル名のスペルミスの可能性もあります。See section 組み込み関数,
の require
の項を参照してください。
- Can't locate object method "%s" via package "%s"
-
(F) 正しくメソッドを呼び出し、それは、クラスとして機能するパッケージを正
しく示していますが、そのパッケージにも、基底クラスにも、該当のメソッドが
定義されていません。See section オブジェクト,を参照してください。
- Can't locate package %s for @%s::ISA
-
(W) 配列 @ISA に別のパッケージ名が記されていますが、存在していないよう
です。
- Can't mktemp()
-
(F) `-e' スイッチを処理しようとして、何らかの理由により、mktemp()
ルーティンがうまく行きませんでした。/tmp パーティションがいっぱいか、壊
れている可能性があります。
- Can't modify %s in %s
-
(F) 指定されたものは、代入、インクリメントなど、変更が許されていません。
- Can't modify non-existent substring
-
(P) substr() への代入を行なう内部ルーティンに NULL が渡されました。
- Can't msgrcv to readonly var
-
(F) msgrcv で使用する変数は、受信バッファとして使用しますので、変更可能
なものでなければなりません。
- Can't open %s: %s
-
(S) 置き換え編集で、表示した理由によって、元のファイルがオープンできませ
んでした。通常、これはそのファイルのリード権が無いときに起こります。
- Can't open bidirectional pipe
-
(W) サポートされていない
open(CMD, "|cmd|")
を行なおうとしました。
これを行なうためには、Perl ライブラリの`open2.pl' のようないくつか
のモジュールを使うことができます。別の方法として、パイプされたものを ">"
を使っていったんファイルに出力し、あとで別のファイルハンドルで読み込みを
行なうことも考えられます。
- Can't open perl script "%s": %s
-
(F) 指定したスクリプトが、表示した理由によってオープンできませんでした。
- Can't rename %s to %s: %s, skipping file
-
(S) `-i' スイッチで行なわれた rename が何らかの理由によって、うまく
行きませんでした。ディレクトリに書き込み権がないことも考えられます。
- Can't reswap uid and euid
-
(P) suidperl の setuid エミュレータで何らかの理由により、setreuid() 呼び
出しが失敗しました。
- Can't return outside a subroutine
-
(F)
return
文が、return
で抜けるべきサブルーティンがない、
"main" コードで実行されました。{サブルーティン}を参照してください。
- Can't stat script "%s"
-
(P) 何らかの理由で、例え既にオープンしていたとしても、
fstat()
が
行なえません。困ったもんだ。
- Can't swap uid and euid
-
(P) suidperl の setuid エミュレータで何らかの理由により、setreuid() 呼び
出しが失敗しました。
- Can't take log of %g
-
(F) 対数は、正の実数に対してのみ定義されています。
- Can't take sqrt of %g
-
(F) 通常の実数では、負数の平方根をとることはできません。しかし、本当にそ
の計算を行ないたいのであれば、`Complex' パッケージが Perl に用意さ
れています。
- Can't undef active subroutine
-
(F) 実行中のルーティンを未定義にすることはできません。しかし、実行中に再
定義することはでき、古いルーティンを実行中に、再定義したサブルーティンを
undef
することさえできます。Go figure。
- Can't unshift
-
(F) Perl のメインスタックのように、
unshift
することのできない「実
在しない」配列に対して、unshift
を行なおうとしました。
- Can't upgrade that kind of scalar
-
(P) 内部の sv_upgrade ルーティンは、
SV
に「メンバ」を加えて、より
特別な種類の SV
にします。しかし、上位のいくつかの SV
型は、
特殊化され過ぎて、内部変換することができません。このメッセージは、そのよ
うな変更を行なおうとしたことを示しています。
- Can't upgrade to undef
-
(P) 未定義
SV
は、upgrade の仕組みにおいて、階層構造の最下位に位
置するものです。undef
への upgrade は、sv_upgrade を呼ぶコードの
エラーを示します。
- Can't use %s as left arg of an implicit ->
-
(F) コンパイラが、配列リファレンスへの添え字として、大括弧で括った式を解
釈しようとしました。大括弧の左が、アロー (->) で終わっていない式であった
り、添え字付けされた式になっています。複数の添え字を持つ、添え字付けされ
た式だけが、間のアローを省略できます。
- Can't use %s for loop variable
-
(F) 単純スカラ変数だけが、
foreach
のループ変数として使用すること
ができます。
- Can't use %s ref as %s ref
-
(F) リファレンス型を混同しています。必要な型のリファレンスを被参照しなけ
ればなりません。必要ならば、リファレンスの型を調べるのに、
ref()
関数を使うことができます。
- Can't use a string as %s ref while "strict refs" in use
-
(F)
strict refs
では、ハードリファレンスだけが許されます。シンボ
リックリファレンスは、許されていません。
See section リファレンスとデータ構造のネスト,を参照してください。
- Can't use an undefined value as %s reference
-
(F) ハードリファレンスやシンボリックリファレンスとして使用する値は、定義
済みの値でなければなりません。潜伏中のエラーを引きずり出す助けとなります。
- Can't use delimiter brackets within expression
-
(F) ${name} という用法は、文字列で識別子の曖昧さを取り除くためのもので、
通常のコードの中では使えません。
- Can't use global %s in "my"
-
(F) マジカル変数を、字句スコープ変数として宣言しようとしました。これが許
されていないのは、マジック変数は1か所だけにおくことができる (つまりグロー
バル変数) からであり、マジカル変数に見えながら、そうでないものがプログラ
ム中に現われると混乱の元となるためです。
- Can't write to temp file for -e: %s
-
(F) `-e' スイッチを処理しようとして、何らかの理由により、書き込みルー
ティンがうまく行きませんでした。`/tmp' パーティションがいっぱいか、
壊れている可能性があります。
- Can't x= to readonly value
-
(F) 定数値 (未定義値であることが多い) を、自らを書き換えることを意味する、
代入演算子で繰り返しを行なおうとしました。テンポラリ変数に値を移してから、
繰り返すと良いでしょう。
- Cannot open temporary file
-
(F) `-e' スイッチを処理しようとして、何らかの理由により、ファイル生
成ルーティンがうまく行きませんでした。`/tmp' パーティションがいっぱ
いか、壊れている可能性があります。
- chmod: mode argument is missing initial 0
-
(W) 初心者の方は、
chmod 777, $filename
というふうに、777 が 01411 に等しい 10 進数であることに気付かないで使う
ことがあります。Perl では、8 進数の定数は、C と同じように、先頭に 0 を付
けて表わします。
- Close on unopened file <%s>
-
(W) オープンされていないファイルハンドルをクローズしようとしました。
- connect() on closed fd
-
(W) クローズされたソケットに
connent
を行なおうとしました。
socket()
の呼び出し時に、返却値のチェックを忘れたたのではありませ
んか。See section 組み込み関数,の connect
の項を参照してください。
- Corrupt malloc ptr 0x%lx at 0x%lx
-
(P) Perl に付属の malloc ルーティンが内部エラーを起こした。
- corrupted regexp pointers
-
(P) 正規表現コンパイラが渡したもので、正規表現エンジンが処理できなくなっ
た。
- corrupted regexp program
-
(P) 正規表現エンジンが、有効なマジックナンバーを持たないregexp プログラ
ムを渡しました。
- Deep recursion on subroutine "%s"
-
(W) このサブルーティンは、(直接、間接に) 自分自身の呼び出しを、
return
より100回多く行ないました。変わったベンチマークプログラム
を書いているのでなければ、無限再帰の可能性があります。ベンチマークを書い
ている場合には、別のことを示しています。
- Did you mean $ instead of %?
-
(W)
$hash{$key
} のつもりで %hash{$key
} と書いたと思われま
す。
- Don't know how to handle magic of type '%s'
-
(P) マジック変数の内部処理がおかしくなっています。
- do_study: out of memory
-
(P) これは、本来 safemalloc() で、引っ掛かるはずのものです。
- Duplicate free() ignored
-
(S) 既に解放されているものに対して、内部ルーティンが、
free()
を行
なおうとしました。
- END failed--cleanup aborted
-
(F) END サブルーティンを実行中に、トラップできない例外が発生しました。イ
ンタプリタは、即座に実行を中止します。
- Execution of %s aborted due to compilation errors.
-
(F) Perl のコンパイルが失敗したときの、最後のまとめメッセージです。
- Exiting eval via %s
-
(W)
goto
やループ制御文など、おかしな方法で eval
を抜けま
した。
- Exiting subroutine via %s
-
(W)
goto
やループ制御文など、おかしな方法でサブルーティンを抜けま
した。
- Exiting substitution via %s
-
(W)
return
や goto
やループ制御文など、おかしな方法で置換
を抜けました。
- Fatal $PUTMSG error: %d
-
(F) VMS 特有のエラーです。
- fcntl is not implemented
-
(F) このマシんでは、fcntl() がインプリメントされていないように見えます。
PDP-11 か何かでしょうか。
- Filehandle %s never opened
-
(W) 初期化していないファイルハンドルに対して、I/O 操作を行なおうとしまし
た。
open()
や socket()
、`FileHandle' パッケージのコン
ストラクタを呼び出す必要があります。
- Filehandle %s opened only for input
-
(W) リードオンリーのファイルハンドルに対して、書込みを行なおうとしました。
読み書き両用ファイルハンドルにしたいのであれば、"<" を付けたり、何も付け
なかったりするのではなく、"+<" や "+>" や "+>>" を付けて
open
す
る必要があります。ライトオンリーであれば、">" や ">>" を使ってください。
See section 組み込み関数,の open
の項を参照してください。
- Filehandle only opened for input
-
(W) リードオンリーのファイルハンドルに対して、書込みを行なおうとしました。
読み書き両用ファイルハンドルにしたいのであれば、"<" を付けたり、何も付け
なかったりするのではなく、"+<" や "+>" や "+>>" を付けて
open
す
る必要があります。ライトオンリーであれば、">" や ">>" を使ってください。
See section 組み込み関数,の open
の項を参照してください。
- Final $ should be \$ or $name
-
(F) 文字列の最後の $ が、リテラルのドル記号なのか、変数名を入れようとし
て忘れたのかを、はっきりさせなければなりません。バックスラッシュを付ける
か、名前を入れてください。
- Final @ should be \@ or @name
-
(F) 文字列の最後の @ が、リテラルのアットマークなのか、変数名を入れよう
として忘れたのかを、はっきりさせなければなりません。バックスラッシュを付
けるか、名前を入れてください。
- Format %s redefined
-
(W) フォーマットを再定義しました。この警告を止めるには、
{
local $^W = 0;
eval "format NAME =...";
}
としてください。
- Format not terminated
-
(F) フォーマットは、単独のドットだけからなる行で終わらなければなりません。
そのような行が見つからないまま、スクリプトの最後に行き当たってしまいまし
た。
- Found = in conditional, should be ==
-
(W) おそらく、
if ($foo == 123)
とすべきところを
if ($foo = 123)
としています (あるいは似たようなこと)。
- gdbm store returned %d, errno %d, key "%s"
-
(S) `GDBM_File' 拡張モジュールが、値の設定に失敗したという警告です。
- gethostent not implemented
-
(F) C ライブラリに gethostent() がインプリメントされていないようです。お
そらく、インプリメントすると Internet 上のすべてのホスト名を返さなければ
いけないと思っているのでしょう。
- get{sock,peername() on closed fd}
-
(W) クローズされたソケットに、
get{sock,peer
name()} を行なおうとし
ました。socket()
の呼び出し時に、返却値のチェックを忘れたのではあ
りませんか。
- Glob not terminated
-
(F) 項が必要とされるところで、開き山括弧が見つけたため、対応する閉じ山括
弧を探しましたが、見つかりませんでした。可能性としては、必要な括弧を省い
てしまい、本当は、「小なり記号」を表したかった場合が考えられます。
- Global symbol "%s" requires explicit package name
-
(F)
use strict vars
が指定されていますので、すべての変数は、
(my
を使った) 字句スコープの変数か、グローバル変数がどのパッケー
ジのものかを ("::" を使って)、明示的に修飾しなくてはなりません。
- goto must have label
-
(F)
next
や last
とは違って、goto
には必ず、飛び先
を指定しなくてはなりません。See section 組み込み関数,の goto
の項を参照
してください。
- Had to create %s unexpectedly
-
(S) あるルーティンが、既に存在しているはずのシンボルを、シンボルテーブル
で探しましたが、何らかの理由で存在せず、コアダンプを避けるために、緊急に
生成しました。
- Hash %%s missing the % in argument %d of %s()
-
(D) 古い Perl では、ハッシュ名の % を省略できる場所がありました。省略は
しないようにしてください。
- Identifier "%s::%s" used only once: possible typo
-
(W) タイプミスは、多くの場合に、その識別子が1度しか現れないことで発覚し
ます。何か理由があって、その識別子を1度しか使っていないのであれば、単に
どこかでその識別子を書いておくだけでこのメッセージは止められます。
- Illegal division by zero
-
(F) ゼロで割り算をしようとしました。ロジックの誤りか、意味の無い入力を防
ぐために、条件を付けることが必要かのどちらかでしょう。
- Illegal modulus zero
-
(F) 余りを求めるのに、ゼロで割り算をしようとしました。これは、ほとんどの
数体系で受け入れられません。
- Illegal octal digit
-
(F) 8進数で8か9を使いました。
- Insecure dependency in %s
-
(F) 何か汚染チェックの機構が、望ましくないと判断することを行なおうとしま
した。setuid や setgid を実行したときや、明示的に `-T' で指定したと
きに、汚染チェック機構が働きます。汚染チェック機構は、信頼がおけないと仮
定されるユーザが直接、間接を問わず、指定したデータに印を付けます。そのよ
うなデータを「危険な」操作に用いると、このエラーが発生します。詳しくは、
See section セキュリティ,を参照してください。
- Insecure directory in %s
-
(F) $ENV{PATH} の中に、誰にでも書き込みができるディレクトリが含まれてい
るとき、
system()
、exec()
、パイプのオープンを行なうことはで
きません。See section セキュリティ,を参照してください。
- Insecure PATH
-
(F) $ENV{PATH} の中に、ユーザが指定した (あるいはその可能性がある) デー
タから作られたものが含まれるとき、
system()
、exec()
、パイプ
のオープンを行なうことはできません。スクリプト内で、信頼できるデータに基
づいて、パスに既知の値を設定しなければなりません。See section セキュリティ,を
参照してください。
- internal disaster in regexp
-
(P) 正規表現解析部に何か悪いことが起こりました。
- internal urp in regexp at /%s/
-
(P) 正規表現解析部に何か間違ったことが起こりました。
- invalid [] range in regexp
-
(F) 文字クラスに指定した範囲の最小値が、最大値よりも大きくなっています。
See section 正規表現,を参照してください。
- ioctl is not implemented
-
(F) C をサポートしているマシンではおかしなことだと思いますが、このマシン
では ioctl() がインプリメントされていないようです。
- junk on end of regexp
-
(P) 正規表現の構文解析ができなくなった。
- Label not found for "last %s"
-
(F) 脱出するループを指定しましたが、その名前のループの中にいません、たと
え、呼び出された場所がそうであっても、今はそうではありません。
See section 組み込み関数,の
last
の項を参照してください。
- Label not found for "next %s"
-
(F) 次の繰り返しを行なうループを指定しましたが、その名前のループの中にい
ません。たとえ、呼び出された場所がそうであっても、今はそうではありません。
See section 組み込み関数, の
next
の項を参照してください。
- Label not found for "redo %s"
-
(F) 繰り返しの再実行を行なうループを指定しましたが、その名前のループの中
にいません。たとえ、呼び出された場所がそうであっても、今はそうではありま
せん。See section 組み込み関数,の
redo
の項を参照してください。
- listen() on closed fd
-
(W) クローズされたソケットに listen を行なおうとしました。
socket()
の呼び出し時に、返却値のチェックを忘れたのではありません
か。See section 組み込み関数,の listen
の項を参照してください。
- Literal @%s now requires backslash
-
(F) Perl は、配列を展開したいのか、リテラルの @ を使いたいのかを推察す
るようにしていました。これは、実行時に文字列が最初に使われたときに、行な
われました。現在、文字列はコンパイル時に解析され、曖昧な @ は、リテラル
であることを示すためにバックスラッシュを付けるか、プログラム内で (字面の
上で) 文字列よりも前に、宣言 (あるいは、使用)することによって、配列であ
ることを示さなければなりません。(そのうちに、バックスラッシュのない @
は、単純に配列と解釈するようになります。)
- Method for operation %s not found in package %s during blessing
-
(F) 多重定義テーブルで、有効なメソッドを指していないエントリを指定しよう
としました。See section 多重定義,を参照してください。
- Might be a runaway multi-line %s string starting on line %d
-
(S) ようやく現在行になって、文字列やパターンの終わりが見つかったことから、
先のエラーが、文字列やパターンのデリミタが、見つからなかったことで起った
かもしれないことを、補足的に示しています。
- Misplaced _ in number
-
(W) 十進数定数で下線が、3桁ごとでありませんでした。
- Missing $ on loop variable
-
(F) csh を使いすぎた症状が現れているようです。Perl では、変数は常に $ を
付けて表わされます。その時によって違う、シェルとは違っています。
- Missing comma after first argument to %s function
-
(F) ある種の関数では、引数リストの前に、ファイルハンドルや「間接オブジェ
クト」をおくことができますが、この関数は、そういったものではありません。
- Missing right bracket
-
(F) 字句解析部が、閉じ中括弧よりも開き中括弧を多く発見しました。一般的な
規則として、最後に修正した場所の近くに間違いがあるといえます。
- Missing semicolon on previous line?
-
(S) このメッセージは、"%s found where operator expected" というメッセー
ジに伴って出される経験的な想像によるものです。このメッセージが出たからと
いって、機械的に前の行にセミコロンを付けることはしないでください。
- Modification of a read-only value attempted
-
(F) 直接、間接に関らず、定数値を変更しようとしました。もちろん、コンパイ
ラが発見できる、"2 = 1" などといったことをしたわけではありません。しかし、
同じことは、
sub mod { $_[0] = 1 }
mod(2);
としても起こります。substr()
で、文字列の終わりよりも後ろに代入を
行なうことでも起こります。
- Modification of non-creatable array value attempted, subscript %d
-
(F) 配列値を存在するようにしようとしました。おそらく、インデクスが負数で、
配列の終わりから逆に数えたとしても、おかしな位置を指しているようです。
- Modification of non-creatable hash value attempted, subscript "%s"
-
(F) ハッシュ値を存在するようにしようとしましたが、何か特別な理由で、でき
ませんでした。
- Module name must be constant
-
(F)
use
の最初の引数としてモジュール名を示すのに許されているのは、
裸の単語だけです。
- msg%s not implemented
-
(F) このシステムでは、System V メッセージ IPC は使えません。
- Multidimensional syntax %s not supported
-
(W) 多次元配列は、$foo[1,2,3] のようには書けません。これは、C のように
$foo[1][2][3] のように書きます。
- Negative length
-
(F) ゼロより短い長さのバッファで、読み込み、書き込み、送信、受信を行なお
うとしました。どのようなことがしたいのか判断できません。
- nested *?+ in regexp
-
(F) 括弧を挟まないで、数量子を数量子で修飾することはできません。つまり、
** や +* や ?* といったものは、正しくありません。
しかし、最短一致数量子の *?、+?、?? は、ネストした数量子のように見えます
が、そうではありません。See section 正規表現,を参照してください。
- No #! line
-
(F) setuid エミュレータでは、たとえマシンがサポートしていなくても、完全
な形の #! 行がスクリプトに書かれていなければなりません。
- No %s allowed while running setuid
-
(F) ある種の操作は、setuid や setgid スクリプトにとって、やってみること
はできても、とても安全なものとは考えられないものです。一般に言って、安全
ではなくても、安全にしうる、別の方法があるはずです。See section セキュリティ,
を参照してください。
- No -e allowed in setuid scripts
-
(F) setuid スクリプトは、ユーザによって指定することはできません。
- No comma allowed after %s
-
(F) ファイルハンドルや「間接オブジェクト」を伴うリスト演算子では、それら
とそれ以降の引数の間にコンマを入れることはできません。そのようにした場合
には、引数の一つとなってしまいます。
- No DB::DB routine defined
-
(F) 現在実行中のコードは、`-d' スイッチを付けてコンパイルされました
が、何らかの理由により、perl5db.pl (あるいは、その複製) が各実行文の頭で
呼び出すルーティンを定義していません。そのファイルは自動的に
require
されるものであり、正しく解釈できなければ、require
が失敗するはずですので、これはとても有り得ない状態です。
- No dbm on this machine
-
(P) これは、内部エラーとして扱われます。Perl に `SDBM'が付いてくる
ので、どのマシンでも dbm が使えるはずだからです。@xref{SDBM_File},を参照
してください。
- No DBsub routine
-
(F) 現在実行中のコードは、`-d' スイッチを付けてコンパイルされました
が、何らかの理由により、`perl5db.pl' (あるいは、その複製) が各サブ
ルーティン呼び出しの頭で呼び出す
DB::sub
ルーティンを定義していま
せんでした。
- No Perl script found in input
-
(F) `perl -x' を呼び出しましたが、そのファイルに #! で始まり、
"perl" という語を含む行が見つかりませんでした。
- No setregid available
-
(F) Configure が、システム上に setregid() のような関数を見つけられません
でした。
- No setreuid available
-
(F) Configure が、システム上に setreuid() のような関数を見つけられません
でした。
- No space allowed after -I
-
(F) `-I' の引数は、`-I' の直後にスペースを空けないで書く必要が
あります。
- No such signal: SIG%s
-
(W) %SIG の添え字として認識できないシグナル名を指定しました。お使いのシ
ステムで使用可能なシグナル名を調べるには、シェル上で `kill -l' など
としてください。
- Not a CODE reference
-
(F) Perl がコード値 (サブルーティン) へのリファレンスを評価しようとしま
したが、別のものへのリファレンスでした。実際にどんな種類のリファレンスか
を調べるには、
ref()
関数を使うことができます。
See section リファレンスとデータ構造のネスト,も参照してください。
- Not a format reference
-
(F) どのように無名のフォーマットへのリファレンスを生成したのかはわかりま
せんが、このメッセージは、それが指定されて、存在しなかったことを示します。
- Not a GLOB reference
-
(F) Perl が「型グロブ」(これは、*foo のようなシンボルテーブルエントリで
す) へのリファレンスを評価しようとしましたが、別のものへのリファレンスで
した。実際にどんな種類のリファレンスかを調べるには、
ref()
関数を
使うことができます。See section リファレンスとデータ構造のネスト,を参照してく
ださい。
- Not a HASH reference
-
(F) Perl がハッシュ値へのリファレンスを評価しようとしましたが、別のもの
へのリファレンスでした。実際にどんな種類のリファレンスかを調べるには、
ref()
関数を使うことができます。
See section リファレンスとデータ構造のネスト,を参照してください。
- Not a perl script
-
(F) setuid エミュレータでは、たとえマシンがサポートしていなくても、完全
な形の #! 行がスクリプトに書かれていなければなりません。この行で指定され
るのは、perl でなければなりません。
- Not a SCALAR reference
-
(F) Perl がスカラ値へのリファレンスを評価しようとしましたが、別のものへ
のリファレンスでした。実際にどんな種類のリファレンスかを調べるには、
ref()
関数を使うことができます。
See section リファレンスとデータ構造のネスト,を参照してください。
- Not a subroutine reference
-
(F) Perl がコード値 (サブルーティン) へのリファレンスを評価しようとしま
したが、別のものへのリファレンスでした。実際にどんな種類のリファレンスか
を調べるには、
ref()
関数を使うことができます。
See section リファレンスとデータ構造のネスト,も参照してください。
- Not a subroutine reference in %OVERLOAD
-
(F) 多重定義テーブルで、有効なサブルーティンを指していないエントリを指定
しようとしました。See section 多重定義,を参照してください。
- Not an ARRAY reference
-
(F) Perl が配列値へのリファレンスを評価しようとしましたが、別のものへの
リファレンスでした。実際にどんな種類のリファレンスかを調べるには、
ref()
関数を使うことができます。
See section リファレンスとデータ構造のネスト,を参照してください。
- Not enough arguments for %s
-
(F) この関数は、指定したよりも多くの引数を必要とします。
- Not enough format arguments
-
(W) 指定したフォーマットに、次の行で指定したより多くのピクチャフィールド
があります。See section フォーマット文,を参照してください。
- Null filename used
-
(F) 特に、多くのマシンでカレントディレクトリを意味するため、空のファイル
名は
require
できません。See section 組み込み関数,の require
の
項を参照してください。
- NULL OP IN RUN
-
(P) 内部ルーティンで、ヌル opcode ポインタで run() を呼んだものがありま
す。
- Null realloc
-
(P) realloc NULL を行なおうとしました。
- NULL regexp argument
-
(P) 内部パターンマッチルーティンが、大当たりです。
- NULL regexp parameter
-
(P) 内部パターンマッチルーティンが、狂っています。
- Odd number of elements in hash list
-
(S) ハッシュリストへの要素の数が奇数でした。ハッシュリストは、key/value
のペアで与えられますから、これは奇妙なことです。
- oops: oopsAV
-
(S) 文法がおかしくなったことを示す内部警告です。
- oops: oopsHV
-
(S) 文法がおかしくなったことを示す内部警告です。
- Operation `%s' %s: no method found,
-
(F) 多重定義テーブルで、もはや有効なメソッドを指していないエントリを使お
うとしました。See section 多重定義,を参照してください。
- Out of memory for yacc stack
-
(F) yacc パーサーが解析を続けるために、スタックを広げようとしましたが、
realloc()
が仮想やその他のメモリを確保できませんでした。
- Out of memory!
-
(X) 要求を満たすだけの、十分な残メモリ (または、仮想メモリ) が取得できな
いことを示す、0 を
malloc()
関数が返しました。
- page overflow
-
(W)
write()
の 1 度の呼び出しで、1 ページに収まるより多くの行がで
きました。See section フォーマット文,を参照してください。
- panic: ck_grep
-
(P)
grep
をコンパイルしようとして、内部の一貫性チェックに引っ掛か
りました。
- panic: ck_split
-
(P)
split
をコンパイルしようとして、内部の一貫性チェックに引っ掛
かりました。
- panic: corrupt saved stack index
-
(P) セーブスタックにある以上のローカル化した値を元に戻す要求がありました。
- panic: die %s
-
(P)
eval
コンテキストへコンテキストスタックをポップしたあと、
eval
コンテキストでないことがわかりました。
- panic: do_match
-
(P) 内部の pp_match() ルーティンが、無効な省略可能データを付けて呼ばれま
した。
- panic: do_split
-
(P)
split
の準備中に何かまずいことが起こってしまいました。
- panic: do_subst
-
(P) 内部の pp_subst() ルーティンが、無効な省略可能データを付けて呼ばれま
した。
- panic: do_trans
-
(P) 内部の pp_trans() ルーティンが、無効な省略可能データを付けて呼ばれま
した。
- panic: goto
-
(P) 指定したラベルを伴うコンテキストへコンテキストスタックをポップしたあ
と、どのように
goto
するかがわかっているコンテキストでないことが
わかりました。
- panic: INTERPCASEMOD
-
(P) 大文字小文字修飾子のところで、字句解析部がおかしな状態に陥りました。
- panic: INTERPCONCAT
-
(P) 中括弧を伴う文字列を解析中に、字句解析部がおかしな状態に陥りました。
- panic: last
-
(P) block コンテキストへコンテキストスタックをポップしたあと、block コン
テキストでないことがわかりました。
- panic: leave_scope clearsv
-
(P) 書き込み可能な字句スコープ変数が、どういうわけか、スコープ内でリード
オンリーになりました。
- panic: leave_scope inconsistency
-
(P) おそらく、セーブスタックの同期がとれていません。少なくとも、トップに
不正な enum がありました。
- panic: malloc
-
(P) malloc に負のバイト数で要求が行なわれました。
- panic: mapstart
-
(P) コンパイラが、map() 関数に関しておかしくなりました。
- panic: null array
-
(P) 内部配列ルーティンで、ヌル `AV' ポインタを渡されたものがあった。
- panic: pad_alloc
-
(P) コンパイラが、一時領域や字句形式を割り当て、解放しているスクラッチパッ
ドについて混乱しました。
- panic: pad_free curpad
-
(P) コンパイラが、一時領域や字句形式を割り当て、解放しているスクラッチパッ
ドについて混乱しました。
- panic: pad_free po
-
(P) 不正なスクラッチパッドのオフセットが、内部的に検出されました。
- panic: pad_reset curpad
-
(P) コンパイラが、一時領域や字句形式を割り当て、解放しているスクラッチパッ
ドについて混乱しました。
- panic: pad_sv po
-
(P) 不正なスクラッチパッドのオフセットが、内部的に検出されました。
- panic: pad_swipe curpad
-
(P) 不正なスクラッチパッドのオフセットが、内部的に検出されました。
- panic: pad_swipe po
-
(P) 不正なスクラッチパッドのオフセットが、内部的に検出されました。
- panic: pp_iter
-
(P)
foreach
の繰返し子が、ループ文脈以外のところで呼ばれました。
- panic: realloc
-
(P) 何か、realloc に負のバイト数を要求したものがあります。
- panic: restartop
-
(P) 内部ルーティンから
goto
(または、同じようなもの) が要求されま
したが、飛び先が与えれていません。
- panic: return
-
(P) サブルーティンコンテキストや
eval
コンテキストへ、コンテキス
トスタックをポップしたあと、サブルーティンコンテキストや eval
コ
ンテキストでないことがわかりました。
- panic: scan_num
-
(P) scan_num() が、何か数字でないものに対して呼ばれました。
- panic: sv_insert
-
(P) sv_insert() ルーティンが、存在する以上の文字列を削除するように指示さ
れました。
- panic: top_env
-
(P) コンパイラが、
goto
など妙なことを行なおうとしました。
- panic: yylex
-
(P) 大文字小文字修飾子を処理中に、字句解析部がおかしな状態に陥りました。
- Parens missing around "%s" list
-
(W) おそらく、
my ($foo, $bar) = @_;
のようにすべきところで、
my $foo, $bar = @_;
のように書いてしまいました。my
や local
は、コンマよりも強
く結合することを忘れないでください。
- Perl %3.3f required--this is only version %s, stopped
-
(F) 問題のモジュールは、現在実行中の Perl よりも最近のバージョンの機能を
使っています。ところで、どのくらいアップグレードしていないのですか。
See section 組み込み関数,の
require
の項を参照してください。
- Permission denied
-
(F) suidperl の setuid エミュレータは、実行者が安全とは言えないと判断し
ました。
- POSIX getpgrp can't take an argument
-
(F) お使いの C コンパイラは、引数に pid をとる BSD バージョンの
getpgrp()
と違って、引数をとらない POSIX のものを使っています。
- Possible memory corruption: %s overflowed 3rd argument
-
(F)
ioctl()
や fcntl()
が、Perl が求めていた以上のものを返
してきました。Perl は、適量のバッファサイズを見積もりますが、念のために
バッファの最後に目印を付けています。この目印が壊されたため、Perl はメモ
リの破壊が起こったと判断しました。See section 組み込み関数,の ioctl
の
項を参照してください。
- Precedence problem: open %s should be open(%s)
-
(S) 古い変則的な構文
open FOO || die;
は現在は、Perl 5 の文法の厳しい正規化の結果、単項演算子かリスト演算子と
解釈されますので、
open(FOO || die);
という風に誤った解釈がなされます。(古い open
は、単項演算子とリス
ト演算子の中間のようなものでした。)ファイルハンドルの前後を括弧で囲むか、
"||" 演算子の代わりにor
演算子を使わなくてはなりません。
- print on closed filehandle %s
-
(W)
print
を行なおうとしたファイルハンドルは、既にクローズされて
います。ロジックの流れをチェックしてください。
- printf on closed filehandle %s
-
(W)
printf
を行なおうとしたファイルハンドルは、既にクローズされて
います。ロジックの流れをチェックしてください。
- Probable precedence problem on %s
-
(W) コンパイラが、条件を期待するところで、裸の単語を見つけました。これは、
多くの場合、|| や && が前の構文の最後の引数の一部として解釈されたときに
発生します。たとえば、
open FOO || die;
のような場合です。
- Read on closed filehandle <%s>
-
(W) 読み込みを行なおうとしたファイルハンドルは、既にクローズされています。
ロジックの流れをチェックしてください。
- Reallocation too large: %lx
-
(F) MS-DOS マシンでは、64K を越えるメモリを割り当てることはできません。
- Recompile perl with -DDEBUGGING to use -D switch
-
(F) Perl のコンパイル時に、適切な出力ルーティンが組み込まれていなければ、
`-D' スイッチを使うことはできません。これは、多少のオーバヘッドがか
かるもので、それが現在使っている Perl に組み込んでない理由でしょう。
- Recursive inheritance detected
-
(F) 100 レベル以上の継承が行なわれました。おそらく、継承階層の中で、予想
外のループになっている部分があるものと思われます。
- Reference miscount in sv_replace()
-
(W) 内部の
sv_replace()
関数が、参照数が1でない、新規の SV
を扱いました。
- regexp memory corruption
-
(P) 正規表現コンパイラが渡したもので、正規表現エンジンが処理できなくなっ
た。
- regexp out of space
-
(P)
safemalloc()
が見つけるはずなので、「起こるはずのないエラー」
です。
- regexp too big
-
(F) 現在の正規表現のインプリメンテーションでは、文字列のアドレスのオフセッ
トを表わすのに short を使っています。このメッセージは、正規表現を編集し
たときに、32767 を越えてしまったことを表しています。通常、このように正規
表現が巨大化してしまうときには、文を分けた、より良い方法があるはずです。
See section 正規表現,を参照してください。
- Reversed %s= operator
-
(W) 代入演算子を逆順に書いています。等号の後に単項演算子が続くときに、曖
昧になるのを避けるため、代入演算子では、等号 = が、最後にこないといけま
せん。
- Runaway format
-
(F) 定義したフォーマットに、空になるまで繰り返す ~~ が含まれていましたが、
一度に 200 行以上となり、199 行目と200 行目が全く同じになりました。(スカ
ラ変数には) @ の代わりに ^ を用いるか、(配列変数には)
shift
か
pop
を行なうかして、引数が自動的になくなるようになっていないとい
けませんが、そうなっていないようです。See section 組み込み関数,を参照してくだ
さい。
- Scalar value @%s[%s] better written as $%s[%s]
-
(W) 配列の一つの要素を選ぶのに、(@ で示される) 配列スライスを用いました。
一般には、($ で示される) スカラ値を使った方が良いと思われます。違いは、
$foo[&bar] とした場合、代入の対象としたときにも、添字を評価するときにも、
常にスカラとして振る舞うのに対し、@foo[&bar] の場合には、代入の対象とし
てもリストとして振る舞い、添字にもリストコンテキストを与えることになりま
す。これは、1 つの添字だけを期待するときには、おかしなこととなるでしょう。
- Script is not setuid/setgid in suidperl
-
(F) 妙なことに、setuid ビット、もしくは setgid ビットが立っていないスク
リプトに対して、suidperl プログラムが起動されました。これは意味がありま
せん。
- Search pattern not terminated
-
(F) `//' もしくは `m{'} 構文の最後の区切り文字が見つかりません
でした。括弧類の区切り文字では、ネストを数えることを忘れないでください。
- seek() on unopened file
-
(W) オープンされていないファイルハンドルか、既にクローズされたファイルハ
ンドルに対して、
seek()
関数を使おうとしました。
- select not implemented
-
(F) このマシンでは、
select()
システムコールはインプリメントされて
いません。
- sem%s not implemented
-
(F) このシステムでは、System V セマフォ IPC は使えません。
- semi-panic: attempt to dup freed string
-
(S) 既に解放と印を付けたスカラを複製するために、内部の
newSVsv()
ルーティンが呼ばれました。
- Semicolon seems to be missing
-
(W) この付近の構文エラーは、おそらくセミコロンか、コンマなどの演算子がな
かったために起こったものと考えられます。
- Send on closed socket
-
(W) 送信を行なおうとしたソケットは、既にクローズされています。ロジックの
流れをチェックしてください。
- Sequence (?#... not terminated
-
(F) 正規表現コメントは、閉じ括弧で終わらなければなりません。括弧を含める
ことは許されません。See section 正規表現,を参照してください。
- Sequence (?%s...) not implemented
-
(F) 使おうとした正規表現の拡張は、予約された文字ですが、まだインプリメン
トされていません。See section 正規表現,を参照してください。
- Sequence (?%s...) not recognized
-
(F) お使いになった正規表現の拡張は、意味をなしません。See section 正規表現,を
参照してください。
- setegid() not implemented
-
(F)
$)
へ代入を行なおうとしましたが、この OS では、
setegid()
システムコール (または、同等のもの) がサポートされてい
ません。少なくとも Configure では、そう判断されました。
- seteuid() not implemented
-
(F)
$>
へ代入を行なおうとしましたが、この OS では、
seteuid()
システムコール (または、同等のもの) がサポートされてい
ません。少なくとも Configure では、そう判断されました。
- setrgid() not implemented
-
(F)
$(
へ代入を行なおうとしましたが、この OS では、
setrgid()
システムコール (または、同等のもの) がサポートされてい
ません。少なくとも Configure では、そう判断されました。
- setruid() not implemented
-
(F) $< へ代入を行なおうとしましたが、この OS では、setruid() システムコー
ル (または、同等のもの) がサポートされていません。少なくとも Configure
では、そう判断されました。
- Setuid/gid script is writable by world
-
(F) setuid エミュレータは、誰もが書き込みができるようになっているスクリ
プトは実行しません。誰かが既に書き換えたかも知れないからです。
- shm%s not implemented
-
(F) このシステムでは、System V 共有メモリ IPC は使えません。
- shutdown() on closed fd
-
(W) クローズされたソケットに shutdown を行なおうとしました。多少、無駄の
ように思われます。
- SIG%s handler "%s" not defined.
-
(W) %SIG 内で指定したシグナルハンドラが、存在しません。間違ったパッケー
ジで、設定を行なっているのかもしれません。
- sort is now a reserved word
-
(F) もはや、誰もお目にかかることのない、旧世代のエラーメッセージです。た
だ、
sort
がキーワードとなる前には、これをファイルハンドルとして使
う方がいました。
- Sort subroutine didn't return a numeric value
-
(F)
sort
の比較ルーティンは、必ず数値を返さなければなりません。
<=>
や cmp
を使わなかったか、正しく使わなかったものと思い
ます。See section 組み込み関数,の sort
の項を参照してください。
- Sort subroutine didn't return single value
-
(F)
sort
の比較サブルーティンは、要素が 1 個以外のリスト値を返す
ことはできません。See section 組み込み関数,の sort
の項を参照してくださ
い。
- Split loop
-
(P)
split
が無限ループに陥りました。(明らかに、split
は、
入力文字数以上にはできないはずですが、そうなってしまいました。)
See section 組み込み関数,の split
の項を参照してください。
- Stat on unopened file <%s>
-
(W) オープンされていないファイルハンドルか、既にクローズされたファイルハ
ンドルに対して、
stat()
関数 (か、同様なファイルテスト) を使おうと
しました。
- Statement unlikely to be reached
-
(W)
exec()
の後に、die() 以外の実行文があります。失敗したとき以外
は、exec()
から return
することはありませんから、ほとんど
の場合には誤りでしょう。return
してくるsystem()
に置き換え
る必要があるかもしれません。この警告を止めるには、ブロック内に
exec()
だけを記述してください。
- Subroutine %s redefined
-
(W) サブルーティンを再定義しました。この警告を止めるには、
{
local $^W = 0;
eval "sub name { ... }";
}
としてください。
- Substitution loop
-
(P) 置換が無限ループに陥りました。(明らかに、置換は入力文字数以上には起
こらないはずですが、それが起こってしまいました。)See section 演算子と優先順位,
の「クォートとクォートのような演算子」の節の置換に関する記述を参照してく
ださい。
- Substitution pattern not terminated
-
(F)
s///
もしくは s{
{}} 構文の真ん中の区切り文字が見つかり
ませんでした。括弧類の区切り文字では、ネストを数えることを忘れないでくだ
さい。
- Substitution replacement not terminated
-
(F)
s///
もしくは s{
{}} 構文の最後の区切り文字が見つかりま
せんでした。括弧類の区切り文字では、ネストを数えることを忘れないでくださ
い。
- substr outside of string
-
(W) 文字列の外を指す
substr()
を参照しようとしました。つまり、オ
フセットの絶対値が、文字列の長さより大きくなっています。
See section 組み込み関数,の substr
の項を参照してください。
- suidperl is no longer needed since...
-
(F) お使いの Perl は、-DSETUID_SCRIPTS_ARE_SECURE_NOW を指定してコンパイ
ルされていますが、setuid エミュレータが、実行されてしまいました。
- syntax error
-
(F) おそらく、構文エラーが起こっています。よくある原因としては、
- キーワードのスペルミス。
- セミコロンを忘れた。
- コンマを忘れた。
- 開き括弧、閉じ括弧を忘れた。
- 開き中括弧、閉じ中括弧を忘れた。
- クォートの閉じ忘れ。
が考えられます。多くの場合、構文エラーと一緒に、別のエラーメッセージが出
て、情報を与えてくれます。(`-w' を付けることが、助けになることもあ
ります。)エラーメッセージ自身には、何行目まで行って、諦めたのかというこ
とも含まれています。Perl はでたらめな入力を理解するのが得意なので、実際
のエラーはもう少し前に在ることもあります。ときには、行番号が全く役に立た
ないこともあり、はまってしまったなら、エラーのきっかけが何かを見つける唯
一の手段は、プログラムを寸断して、エラーがなくなるまで、perl -c
を繰り返すしかありません。頭の体操 20 問だと思ってください。
- System V IPC is not implemented on this machine
-
(F) 何か、名前が "sem"、"shm"、"msg" で始まる関数を実行しようとしました。
See section 組み込み関数,の
semctl
などの項を参照してください。
- Syswrite on closed filehandle
-
(W) 書き込みを行なおうとしたファイルハンドルは、既にクローズされています。
ロジックの流れをチェックしてください。
- tell() on unopened file
-
(W) オープンされていないファイルハンドルか、既にクローズされたファイルハ
ンドルに対して、
tell()
関数を使おうとしました。
- Test on unopened file <%s>
-
(W) オープンされていないファイルハンドルに対して、ファイルテスト演算子を
実行しようとしました。ロジックをチェックしてください。See section 組み込み関数,
の
-X
の節を参照してください。
- That use of $[ is unsupported
-
(F) 現在、$[ への代入は、厳しく制限され、コンパイラディレクティブと解釈
されます。使えるのは、
$[ = 0;
$[ = 1;
...
local $[ = 0;
local $[ = 1;
...
の一つだけです。これは、一つのモジュールで、他のモジュールが意図しないよ
うな、配列のベースを変更する問題を回避するためのものです。
See section 定義済み変数,の $[ の節を参照してください。
- The %s function is unimplemented
-
(F) この関数は、Configure の調査によると、このアーキテクチャでは、インプ
リメントされていないようです。
- The crypt() function is unimplemented due to excessive paranoia.
-
(F) Configure は、マシン上で
crypt()
関数を見つけられませんでした。
おそらく、ベンダからの供給がなかったからで、おそらく、ベンダはアメリカ政
府がそれを秘密だとしていると思っているか、少なくとも思っているというふり
をしているのでしょう。私を引き合いに出したところで、それは否定されること
でしょう。
- The stat preceding -l _ wasn't an lstat
-
(F) 過去の
stat
がシンボリックリンクを通り過ぎた、実際のファイル
の情報を取って、stat
バッファに入れているときに、シンボリックタイ
プの stat
をカレント stat
バッファに対して行なっても意味が
ありません。実際のファイル名を使ってください。
- times not implemented
-
(F) お使いの C ライブラリでは、
times()
を行わないようです。UNIX
ではない環境でしょうか。
- Too few args to syscall
-
(F)
syscall()
には、最低限でも呼び出すシステムコールを示す、引数
が一つ必要です。
- Too many args to syscall
-
(F) Perl では、
syscall()
に最大 14 までしか、引数を渡すことができ
ません。
- Too many arguments for %s
-
(F) 関数が要求する以上の引数を指定しました。
- trailing \ in regexp
-
(F) 正規表現が、バックスラッシュを付けていないバックスラッシュで終了しま
した。バックスラッシュを付けてください。See section 正規表現,を参照してくださ
い。
- Translation pattern not terminated
-
(F)
tr///
もしくは tr[][]
構文の真ん中の区切り文字が見つか
りませんでした。
- Translation replacement not terminated
-
(F)
tr///
もしくは tr[][]
構文の最後の区切り文字が見つかり
ませんでした。
- truncate not implemented
-
(F) このマシンでは、Configure が知りうる、ファイルの切り詰めの機能がイン
プリメントされていません。
- Type of arg %d to %s must be %s (not %s)
-
(F) この関数は、その位置に決まった型の引数を必要とします。配列は、@NAME
もしくは @{EXPR} でなくてはならず、ハッシュは、%NAME もしくは %{EXPR}
でなければなりません。暗黙の被参照は許されませんので、明示的な被参照とし
て、{EXPR} 形式を使ってください。See section リファレンスとデータ構造のネスト,
を参照してください。
- umask: argument is missing initial 0
-
(W)
umask 222
は正しくありません。Perl の 8 進数リテラルは、C と
同じように 0 で始まりますから、 0222 とすべきです。
- Unbalanced context: %d more PUSHes than POPs
-
(W) いくつの実行コンテキストに入って、出たかということの内部矛盾が
exit
コードで発見されました。
- Unbalanced saves: %d more saves than restores
-
(W) いくつの値が、一時的にローカル化されたかということの内部矛盾が
exit
コードで発見されました。
- Unbalanced scopes: %d more ENTERs than LEAVEs
-
(W) いくつのブロックにに入って、出たかということの内部矛盾が
exit
コードで発見されました。
- Unbalanced tmps: %d more allocs than frees
-
(W) いくつの揮発性スカラの割り当てを行ない、解放したかということの内部矛
盾が
exit
コードで発見されました。
- Undefined format "%s" called
-
(F) このフォーマットは存在しないように見えます。おそらく、別のパッケージ
に存在するのではないでしょうか。See section フォーマット文,を参照してください。
- Undefined sort subroutine "%s" called
-
(F) 指定された
sort
の比較ルーティンは存在していないように思われ
ます。おそらく、別のパッケージに存在するのではないでしょうか。
See section 組み込み関数,の sort
の項を参照してください。
- Undefined subroutine &%s called
-
(F) 指定されたサブルーティンが定義されていません。定義されていたとしても、
既に未定義になっています。
- Undefined subroutine called
-
(F) 呼びだそうとしている無名のサブルーティンは、定義されていません。定義
されていたとしても、既に未定義になっています。
- Undefined subroutine in sort
-
(F) 指定された
sort
の比較ルーティンは宣言されましたが、定義され
ていないようです。See section 組み込み関数,の sort
の項を参照してくださ
い。
- unexec of %s into %s failed!
-
(F) unexec() ルーティンが何らかの理由によって失敗しました。最初にインス
トールしたであろう、サイトの FSF 代表者にたずねてみてください。
- Unknown BYTEORDER
-
(F) このバイト順序を入れ替える関数がありません。
- unmatched () in regexp
-
(F) 正規表現の中では、バックスラッシュを付けていない括弧は、必ず対応して
いなければなりません。vi をお使えであれば、% を使って対応する括弧を探す
ことができます。See section 正規表現,を参照してください。
- Unmatched right bracket
-
(F) 字句解析部が開き中括弧よりも多くの閉じ中括弧を見つけました。開き中括
弧のもれと思われます。一般的な規則として、最後に修正した場所の付近に、忘
れた中括弧 (であるはずのもの) があることでしょう。
- unmatched [] in regexp
-
(F) 文字クラスの前後の大括弧は、対応していないといけません。文字クラスの
中に閉じ大括弧を入れたいのであれば、バックスラッシュを付けるか、文字クラ
スの最初に置いてください。See section 正規表現,を参照してください。
- Unquoted string "%s" may clash with future reserved word
-
(W) いつの日にか、予約語とかち合うかもしれない、裸の単語を使用しています。
そのような単語は、クォートするか、大文字を入れるか、アンダーバー (_) を
いれるかしてください。その裸の単語は、サブルーティンとして宣言することも
可能です。
- Unrecognized character \%03o ignored
-
(S) 入力にゴミの文字が見つかり、無視しました。EBCDICマシーンの制御文字だ
とかの場合のためのメッセージです。
- Unrecognized signal name "%s"
-
(F)
kill()
関数に、認識できないシグナル名を指定しました。お使いの
システムで使用可能なシグナル名を調べるには、シェル上で `kill -l' な
どとしてください。
- Unrecognized switch: -%s
-
(F) Perl に間違ったオプションを指定しました。これを行なってはいけません。
(指定したつもりがないのであれば、#! 行に間違ったオプションがスイッチが指
定されていないかをチェックしてください。)
- Unsuccessful %s on filename containing newline
-
(W) あるファイル名に対して、ファイル操作を行ないましたが、失敗しました。
「おそらく」ファイル名に改行文字がついていたからで、「おそらく」
chop()
や chomp()
するのを忘れたのでしょう。
See section 組み込み関数,の chop
の項を参照してください。
- Unsupported directory function "%s" called
-
(F) このマシンでは、
opendir()
や readdir()
がサポートされ
ていません。
- Unsupported function %s
-
(F) このマシンでは、表示した関数はインプリメントされていません。少なくと
も、Configure はそう判断しました。
- Unsupported socket function "%s" called
-
(F) このマシンでは、バークレイのソケット機構がサポートされていないか、少
なくとも Configure がそう判断しました。
- Unterminated <> operator
-
(F) 項が必要とされるところで、開き山括弧が見つけたため、対応する閉じ山括
弧を探しましたが、見つかりませんでした。可能性としては、必要な括弧を省い
てしまい、本当は、「小なり記号」を表したかった場合が考えられます。
- Use of $# is deprecated
-
(D) これは、貧相な awk の機能をエミュレートしようとするものでした。代わ
りに、明示的に
printf()
や sprintf()
を使ってください。
- Use of $* is deprecated
-
(D) この変数は、自分のスクリプトでも、たまたま呼んだ先のサブルーティンで
も、複数行のパターンマッチを有効にしてしまいます。$* の離れたところに与
える危険な影響を避けてこれを行なうために、新しい
//m
修飾子と
//s
修飾子を使ってください。
- Use of %s is deprecated
-
(D) 示した構文は、もはや使うことが推奨されません。一般にはもっと良い方法
があるからであり、また古い方法は、悪い副作用があるからです。
- Use of implicit split to @_ is deprecated
-
(D) サブルーティンの引数を壊すとコンパイラに多大な労力をかけることになる
ので、
split()
の結果は明示的に配列 (やリスト) に代入を行なうよう
にしてください。
- Use of uninitialized value
-
(W) 未定義値を、あたかも既に定義されているかのように使用しました。これは、
"" か 0 と解釈されますが、間違いの可能性があります。この警告を止めるには、
変数に初期値を代入してください。
- Useless use of %s in void context
-
(W) ブロックの値を返さない文や、スカラのコンマ演算子の左側のように返却値
の無い文脈で、副作用のないことを行ないました。多くは、みなさんの間違いを
指摘するものではなく、Perl がみなさんの意向を汲み取った解釈ができないこ
とで起こります。たとえば、みなさんが C の優先順位を Pythonの優先順位と混
同して、
($one, $two) = (1, 2);
とするべきところで、
$one, $two = 1, 2;
とすれば、このエラーとなります。
- Warning: unable to close filehandle %s properly.
-
(S)
open()
によって暗黙のうちに行なわれる close()
が、
close()
のエラーとなりました。通常、ファイルシステムがいっぱいで
あることを示します。
- Warning: Use of "%s" without parens is ambiguous
-
(S) 単項演算子の後に、何か項にも単項演算子にも解釈できる、二項演算子のよ
うなものが置かれました。たとえば、
rand
関数がデフォルトの引数とし
て、1.0 をとることを知っていれば、
rand + 5;
と書いて、
rand() + 5;
と同じことと思うかもしれませんが、実際には、
rand(+5);
の意味になります。したがって、思うように解釈させるには、括弧が必要になり
ます。
- Write on closed filehandle
-
(W) 書き込みを行なおうとしたファイルハンドルは、既にクローズされています。
ロジックの流れをチェックしてください。
- X outside of string
-
(F)
unpack
している文字列の先頭より前の相対位置を示している
pack
テンプレートを指定しました。See section 組み込み関数,の
pack
の項を参照してください。
- x outside of string
-
(F)
unpack
している文字列の最後より後の相対位置を示している
pack
テンプレートを指定しました。See section 組み込み関数,の
pack
の項を参照してください。
- Xsub "%s" called in sort
-
(F) ソートの比較ルーティンとして、外部サブルーティンを使用することは、ま
だサポートされていません。
- Xsub called in sort
-
(F) ソートの比較ルーティンとして、外部サブルーティンを使用することは、ま
だサポートされていません。
- You can't use -l on a filehandle
-
(F) ファイルはオープンされたファイルを表わすものであり、ファイルをオープ
ンしたときには、探しているシンボリックリンクは、既に通り過ぎた後です。代
わりにファイル名を使ってください。
- YOU HAVEN'T DISABLED SET-ID SCRIPTS IN THE KERNEL YET!
-
- (このカーネルでは、SET-ID スクリプトが禁止されていません!)
-
(F) そして、そうすることはできないでしょう。カーネルのソースはお持ちでは
ないでしょうし、ベンダも欲しいものを提供してはくれないでしょうから。もっ
とも良いのは、スクリプトに setuid C ラッパーを被せるために、eg ディレク
トリの wrapsuid スクリプトを使ってみることです。
- You need to quote "%s"
-
(W) シグナルハンドラ名に、裸の単語を代入しました。残念ながら、そのサブルー
ティンは既に宣言されていて、Perl 5では、おそらく思惑とは違って、代入の実
行時にサブルーティンの呼び出しが起こります。(もし、本当にそうしたいので
あれば、サブルーティン名に & を付けてください。)
- [gs]etsockopt() on closed fd
-
(W) クローズされたソケットに
getsockopt
または setsockopt
を行なおうとしました。socket()
の呼び出し時に、返却値のチェックを
忘れたのではありませんか。See section 組み込み関数,の getsockopt
の項
を参照してください。
- \1 better written as $1
-
(W) パターンの外では、後方参照は変数の形で存在します。後方参照の利用は、
置換の右側の部分で扱われますが、スタイル的には、他の Perl プログラマが期
待し、9個以上の後方参照があるときにもうまく動作する、変数形式を使う方が
良いでしょう。
Go to the first, previous, next, last section, table of contents.