気になります。Perlの暗黙的に呼び出されるサブルーチンのほとんどは、すべて大文字で名前を付ける必要があります。TIESCALAR、DESTROYなど。実際にperldoc perltoot
は
コンストラクターに任意の名前を付けることができる場合は、デストラクタを使用しないのはなぜですか?コンストラクタは明示的に呼び出されますが、デストラクタは呼び出されないためです。破壊は、Perlのガベージコレクション(GC)システムを介して自動的に行われます。これは、高速ですが、やや怠惰な参照ベースのGCシステムです。何を呼ぶべきかを知るために、PerlはデストラクタにDESTROYという名前を付けるように主張しています。現在、デストラクタを呼び出す適切なタイミングに関するPerlの概念は明確に定義されていません。そのため、デストラクタが呼び出されるときに依存するべきではありません。
DESTROYがすべて大文字になっているのはなぜですか?Perlは、関数が何らかの方法でPerlによって自動的に呼び出されることを示すための規則として、純粋に大文字の関数名を使用する場合があります。暗黙的に呼び出されるその他のオブジェクトには、BEGIN、END、AUTOLOADに加えて、perltieで説明されているタイオブジェクトによって使用されるすべてのメソッドが含まれます。
では、なぜimport
サブルーチンは小文字のままになっているのでしょうか。誰かがこれについて良い洞察を持っていますか?