NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.
All the Perl that's Practical to Extract and Report
Stories, comments, journals, and other submissions on use Perl; are Copyright 1998-2006, their respective owners.
Bogus argument (Score:1)
What a bogus argument. I would accept this if you had said "I have written a lot of commercial code that just assumes ...", but arguing a (unremovable, by now) misfeature of your code as something actually beneficial is quite a stretch. I hadn't looked at the source code of base.pm before people argued against it, but for my taste it is far too close to the code of UNIVERSAL::require which also silently gobbles up errors happening during requireing a file. The custom $SIG{__DIE__} handler also is an unneccessary complication that stems from the same idea that errors should not be visible upwards.
Now, neither of these two points are what constitutes a "bug", but for some code that should basically be (less the error checking for recursive inheritance)
base.pm has far too many lines and does far too many contortions that I do not want to track down just in case I have a weirdo error that base.pm chooses to suppress. Also, no bad action-at-a-distance occurs by messing with $VERSION and all errors point directly to the source like Can't locate Foo.pm in @INC (... instead of Base class package "Foo" is empty. - in 95% of the cases, that's exactly what's wanted, because somebody misspelled Foo.
(Yes, I'm aware that my code forces every base class to be in a file with a name that matches that base class. If you don't want that, write your own @INC hook or fiddle with %INC.)
Anyway - I started out liking base.pm, but after looking at the source code and having been bitten by UNIVERSAL::require gobbling my (syntax) errors far too many times, I don't want to become one of the people with anecdotal evidence that base.pm has bugs.
Reply to This
Re: (Score:2)
Some people remember to put a BEGIN around setting @ISA (and @EXPORT) but most don't either because they forget or aren't aware.