Perlbignum
bigint
とbigrat
プラグマにはin_effect
、ヒント ハッシュをプローブすることによって、プラグマがスコープにロードされているかどうかを検出する関数が含まれています。ただし、これはバージョン 5.9.4 以降の perl でのみ機能します。これは、レキシカル ヒント ハッシュが導入されたときからです。
これらのプラグマが以前のバージョンの perl で有効かどうかを判断する良い方法はありますか? 私の用途では、バージョン 5.8.8 までサポートしたいと思います。
更新: 以下の暴徒の解決策は、有効である可能性のある字句スペースにアクセスできる場合に機能bignum
します。ただし、私のユースケースでは、そのスペースから呼び出される関数を作成しており、その関数内で呼び出し元のスコープがbignum
読み込まれたかどうかを判断する必要があります。(つまり、私のコードではbignum::in_effect(2)
、呼び出しスタックの数フレームを検索するようなものを呼び出しています)
sub test_sub {is_bignum_in_effect_in_the_caller}
# bignum::in_effect(1) in 5.9.4+
test_sub(); # no bignum
{use bignum; test_sub()} # yes bignum