K.Maebashi's BBS 管理者削除

以下の投稿を削除します。

[232] Re:インタプリタとコンパイラ
返信
投稿者:iwa
2007/02/20 02:13:25

>Perlのようなインタプリタ型の言語は、なぜエラーにならないのでしょうか? インタプリタだから、ではなくて、perlの言語仕様的な問題です。 perlの場合、関数の引数は全て配列(@_)として扱われます。なので、この場合は、 一つ目の%sには$_[0]が、二つ目の%sには$_[1]が、三つ目の%sには$_[2]が入ります。 このとき、Cあたりだと配列長を超えたらそのままバッファオーバーラン、Javaだと 例外が投げられますが、perlの場合は読むときはundefが返り、書くときは自動で 配列長が拡大されます。 今回の場合は、$_[2]を読もうとして返ってきたundefが文字列化されて空文字列 扱いになったわけです。

代替メッセージ

物理削除     パスワード: