perl-Safe-Isa

Call isa, can, does and DOES safely on things that may not be objects

How many times have you found yourself writing: if ($obj->isa('Something')) { and then shortly afterwards cursing and changing it to: if (Scalar::Util::blessed($obj) and $obj->isa('Something')) { Right. That's why this module exists. Since perl allows us to provide a subroutine reference or a method name to the -> operator when used as a method call, and a subroutine doesn't require the invocant to actually be an object, we can create safe versions of isa, can and friends by using a subroutine reference that only tries to call the method if it's used on an object. So: my $isa_Foo = $maybe_an_object->$_call_if_object(isa => 'Foo'); is equivalent to my $isa_Foo = do { if (Scalar::Util::blessed($maybe_an_object)) { $maybe_an_object->isa('Foo'); } else { undef; } }; Note that we don't handle trying class names, because many things are valid class names that you might not want to treat as one (like say "Matt") - the 'is_module_name' function from Module::Runtime is a good way to check for something you might be able to call methods on if you want to do that. We are careful to make sure that scalar/list context is preserved for the method that is eventually called.

openSUSE Leap 15.5 हेतु कोई आधिकारिक पैकेज उपलब्ध नहीं है

वितरण

openSUSE Tumbleweed

openSUSE Leap 15.6

openSUSE Leap 15.5

openSUSE Leap 15.4

SUSE SLE-15-SP2

SUSE SLE-15-SP1

SUSE SLE-12-SP5

RedHat RHEL-7

isv:perlur:epel अल्पविकसित
1.000005

असमर्थित वितरण

निम्नलिखित वितरण आधिकारिक रूप से समर्थित नहीं हैं। इन पैकेज के उपयोग/प्रभाव का उत्तरदायित्व आप पर है।