次のような Perl ファイルがあります。
use strict;
f1();
sub f3()
{ f2(); }
sub f1()
{}
sub f2()
{}
つまり、f1
定義される前に呼び出されます。そのため、Perl は次のような警告をスローします: "f1 の呼び出しが早すぎてプロトタイプをチェックできません"。ただし、 の場合も同様ですf2
。唯一の違いは、別のサブルーチン内から呼び出されることです。に対して警告をスローしませんf2
。なんで?
この問題を解決する最善の方法は何ですか?
- 呼び出される前にサブルーチンを宣言する
- 次のようにサブを呼び出します。
&f1();