7

$thinga がパッケージとして祝福されたオブジェクトかどうかを確認したい(例: __PACKAGE__)。1つのアイデアは次のとおりです。

use Scalar::Util qw(blessed);

defined blessed $thing && blessed $thing eq __PACKAGE__

blessedの戻り値が定義されているかどうかのチェックを回避する、より良いおよび/またはよりエレガントな方法はありますか?

別のアプローチは(blessed $thing or '') eq __PACKAGE__ですが、パッケージを合法的に空にすることができるかどうかはわかりません。

また、 Perl Monksに基づくUNIVERSAL::isa($thing, __PACKAGE__)も別の方法ですが、そのアプローチはより多くのことを許容します。

4

2 に答える 2

4

Safe::IsaCPANのモジュールを使用します。

$possible_object->$_isa('DateTime')
于 2014-03-04T22:51:58.140 に答える