Using Scalar::Util

[prev] [thread] [next] [Date index for 2004/06/23]

From: Drew Taylor
Subject: Using Scalar::Util
Date: 13:48 on 23 Jun 2004
While attending YAPC::NA last week, a talk brought the Scalar::Util 
module to my attention. Specifically, the blessed() function. This is a 
neat way to tell if a particular scalar is a blessed object.

How does this relate to Class::DBI? There are LOTS of checks in method 
calls to make sure it is called either as an instance or class method. 
They all use something like

sub foo {
   my $self = shift;
   # only called as instance method
   return unless ref $self;
}

I propose that C::DBI should use blessed() instead since it's a better 
check. If Tony agrees, I'd be willing to submit a patch. The relevant 
docs are below. The changes should be pretty easy to make.

Drew

> http://search.cpan.org/~gbarr/Scalar-List-Utils-1.14/lib/Scalar/Util.pm
> blessed EXPR
> 
>     If EXPR evaluates to a blessed reference the name of the package that it
> is blessed into is returned. Otherwise undef is returned.
> 
>    $scalar = "foo";
>    $class  = blessed $scalar;           # undef
> 
>    $ref    = [];
>    $class  = blessed $ref;              # undef
> 
>    $obj    = bless [], "Foo";
>    $class  = blessed $obj;              # "Foo"

        -- 
        ----------------------------------------------------------------
Drew Taylor                 *  Web development & consulting
Email: drew@xxxxxxxxxx.xxx  *  Site implementation & hosting
Web  : www.drewtaylor.com   *  perl/mod_perl/DBI/mysql/postgres
----------------------------------------------------------------


Using Scalar::Util
Drew Taylor 13:48 on 23 Jun 2004

Re: Using Scalar::Util
Perrin Harkins 14:10 on 23 Jun 2004

Re: Using Scalar::Util
Drew Taylor 14:32 on 23 Jun 2004

Re: Using Scalar::Util
merlyn (Randal L. Schwartz) 15:53 on 23 Jun 2004

Re: Using Scalar::Util
Drew Taylor 16:43 on 23 Jun 2004

Re: Using Scalar::Util
Tony Bowden 16:53 on 23 Jun 2004

Re: Using Scalar::Util
Perrin Harkins 16:59 on 23 Jun 2004

Re: Using Scalar::Util
Drew Taylor 17:35 on 23 Jun 2004

Re: Using Scalar::Util
Tony Bowden 18:36 on 23 Jun 2004

Re: Using Scalar::Util
Drew Taylor 19:01 on 23 Jun 2004

Re: Using Scalar::Util
Takes Tea at Half Past Three 17:40 on 23 Jun 2004

Re: Using Scalar::Util
Drew Taylor 17:51 on 23 Jun 2004

Re: Using Scalar::Util
Takes Tea at Half Past Three 18:02 on 23 Jun 2004

Re: Using Scalar::Util
Drew Taylor 18:27 on 23 Jun 2004

Re: Using Scalar::Util
Edward J. Sabol 18:27 on 23 Jun 2004

Generated at 11:34 on 01 Dec 2004 by mariachi v0.52