A few months ago, a certain monk talked me out of using base (and apparently took it to the next level) with a few well placed backhanded comments about what it does and doesn't do. I had been using it religiously since I liked the feel of use base 'Module::Name'; and never much thought about it beyond that.

He pointed out that one of the things it claims to do (load the module if it's not there) frequently doesn't work correctly. In fact, in the places I used it, I had habitually loaded most modules I base.pm-ed by hand, without realizing that I was working around a pseudo-bug.

He also pointed out that push @ISA, qw(Module::Name) is probably just as clear. That's arguable I suppose, but I was convinced. I didn't need anything else base.pm was doing (since I don't even know what fields are for) and I quit using it.

I mentioned this on an IRC channel and discovered that most people really really like base.pm (mostly for readability I gather) and so I got to wondering...

Do you like base.pm? Why? Do you prefer to @ISA = qw(name)? Why?

(Again, personally, I do not find @ISA to be particularly unreadable (especially when, below it, I usually use other "unreadable" things like $_ and (stat _)[9]). So I just use @ISA.)

-Paul


In reply to base.pm vs @ISA by jettero

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.