The following module was proposed for inclusion in the Module List: modid: Acme::Holy DSLIP: Rdcfp description: Test whether references are blessed. userid: IBB (Ian Brayshaw) chapterid: 2 (Perl_Core_Modules) communities:
similar: rationale: Acme::Holy provides a single routine, holy(), which returns the name of the package an object has been blessed into, or undef, if its first argument is not a blessed reference. Isn't this what ref() does already? Yes, and no. If given a blessed reference, ref() will return the name of the package the reference has been blessed into. However, if ref() is passed an unblessed reference, then it will return the type of reference (e.g. SCALAR, HASH, CODEREF, etc). This means that a call to ref() by itself cannot determine if a given reference is an object. holy() differs from ref() by returning undef if its first argument is not a blessed reference (even if it is a reference). Can't we use UNIVERSAL::isa()? Yes, and no. If you already have an object, then isa() will let you know if it inherits from a given class. But what do we do if we know nothing of the inheritance tree of the object's class? Also, if we don't have an object, just a normal reference, then attempting to call isa() through it will result in a run-time error. holy() is a quick, single test to determine if a given scalar represents an object (i.e. a blessed reference). enteredby: IBB (Ian Brayshaw) enteredon: Mon Jun 16 02:31:03 2003 GMT The resulting entry would be: Acme:: ::Holy Rdcfp Test whether references are blessed. IBB Thanks for registering, -- The PAUSE PS: The following links are only valid for module list maintainers: Registration form with editing capabilities: https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=a6500000_76b682262e274870&SUBMIT_pause99_add_mod_preview=1 Immediate (one click) registration: https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=a6500000_76b682262e274870&SUBMIT_pause99_add_mod_insertit=1