私はPerlで書かれたかなり複雑なアプリケーションに取り組んでいます。私はその言語にかなりの経験がありますが、私はこれに困惑しています。
コンストラクターに渡すファイルハンドル(この場合は双方向ソケット)のさまざまな操作にsysreadとsyswriteを使用するモジュールFooを使用しています。
次のことを行いたい:私が書いている別のモジュール(これをBarと呼びましょう)から、Fooに属するメソッド内から呼び出された場合にのみsysread/writeが動作する方法を変更したい
Sysread et alは、他のすべての場所で通常どおりに機能する必要があります。Fooではsysreadの使用は変わらないと安全に想定できます。
これを実行したい理由は、前述のファイルハンドルからの読み取り/書き込みのバイト数を追跡する必要があるためです。この時点で、これは私がこの情報を取得できる唯一の方法のようです-基本的にsysread/writeからの戻り値を保存します。
品質が良ければ、CPANの何でも問題なく使用できます。
更新:特定の問題に対するより良い解決策を見つけ、ここにコードを投稿しました:
https://github.com/Hercynium/Tie-Handle-CountChars
私のアプリケーションでは非常にうまく機能しているようですが、より徹底的にテストし、実際の単体テストをいくつか作成するまで、CPANに投稿しません:)