[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index][Thread Index][Top&Search][Original]

Re: A common base exception object for Perl - RFC



Stephen Zander writes:
: >>>>> "Pete" == Pete Jordan <pjordan1@email.mot.com> writes:
:     Pete> Fair point. OK, you've convinced me. I can derive a
:     Pete> structure from Graham's C<Error> module - a bare framework
:     Pete> base class and C<Exception::Simple> which would implement
:     Pete> what I originally described.
: 
: As someone who bitched loud & long about this at the last conference I
: have one question: do you plan to fix all the croak calls in the
: current source code and/or supply some mechanism for XS programmers to
: Do The Right Thing as well?  The whole point of having *any* exception
: class is wasted if it only applies to custome code and as along as you
: support the auto-stringification (is that a word?) of $@, the Backward
: Compatability Police can't touch you.
: 
: BTW, as backwards compatability requires you to support
: auto-stringification of $@ anyway, why bother with a 'to_string'
: string method at all?  This:
: 
:         print $@;
: 
: is so much less typing than this:
: 
:         print $@->to_string;

That's the plan.  In fact, it may be that stringification and
numification methods ought to be supported even in the absence of
ordinary operator overloading.  I could have used that in the
Java/Perl thingie I did a couple of years ago.  Not that stringify
overloading didn't work fine for that, but I felt strange making
all those classes with only '""' overloaded.  Made me think something
isn't decomposed quite right.

Another interesting question is whether $@ gets denatured or stays an
object when you do

    $@ =~ s/foo/bar/;

It could be made to stay an object, if $@->STRINGIFY returns an
lvalue.  That probably makes more sense than denaturing $@, since other
code may rely on $@ remaining an object.

Larry


Follow-Ups from:
Pete Jordan <pjordan1@email.mot.com>
Stephen Zander <gibreel@pobox.com>
References to:
Stephen Zander <gibreel@pobox.com>

[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index][Thread Index][Top&Search][Original]