base
は、モジュールのロードを自動的に処理するだけでなく、すでにロードされているクラスから(おそらくモジュール名に基づかない名前のファイルから)継承を確立できるようにするなど、多くのことを実行しようとしました。それを機能させるために、いくつかのケースで驚くべき結果を引き起こすいくつかのハッカーがありました。下位互換性を損なうのではなく、よりクリーンなセマンティクスを備えた新しい置換プラグマparent
が導入されました。
parent
は、5.10.1以降のコアモジュールになります。
更新:base
がfields
(fields
プラグマを使用している場合)を処理することを忘れましたが、parent
は処理しません。
Ysthからの余分な情報を武器に、ドキュメントの違いを確認することができました。
base
プラグマは次のことを行います。
@ISA
に追加しますrequire
を使用して、指定されたパッケージと同じ名前のモジュールをロードします(パッケージがすでにロードされていることを検出しない限り)$VERSION
が存在しない場合、baseはそれを"-1, set by base.pm"
に設定します。fields
を初期化しますparent
プラグマは次のことを行います。
@ISA
に追加しますrequire
を使用して、指定されたパッケージと同じ名前のモジュールをロードします