さまざまな関数をエクスポートするPerlモジュールがいくつかあります。(新しいモジュールで@EXPORTを数年間使用していませんが、古いスクリプトとの互換性のために@EXPORTを保持しています。)
一貫した命名ポリシーに変更するためにいくつかの関数とメソッドの名前を変更し、次のような行のリストを追加すると思いました
*directory_error = *directoryError;
モジュールの最後で、古い名前を新しい名前にエイリアスします。
これは、古い名前がエクスポートされ、呼び出し元のスクリプトが非修飾名で関数を呼び出す場合を除いて機能します。この場合、サブルーチンが(呼び出し側モジュールに)見つからないことを報告します。
エイリアスが作成されていないときに、エクスポーターがBEGINでリストを準備していることが起こっていると思います。しかし、typeglob割り当てをBEGINブロックに入れてみましたが、それは役に立ちませんでした。
AUTOLOADを試しましたが、もちろん、呼び出し元のコンテキストで名前を使用できるようにはなりません。もちろん、一連のラッパー関数を書くこともできますが、それは面倒です。方法はわかりませんが、ラッパー関数を自動的に生成できる可能性があります。
これを処理するためのきちんとした方法の提案はありますか?