Stories
Slash Boxes
Comments
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

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • by Ovid (2709) on 2007.07.31 6:26 (#56627) Homepage Journal

    * You shouldn't be importing functions from a superclass and nobody's stopping you from adding a "use Baseclass" if you really want to.

    True, but it's frustrating to inherit from a base class which might need arguments passed to its import method. There was some discussion about this on P5P and I recall someone suggesting something like this:

    use base
      'SomeClass',
      'SomeOtherClass' => { import => [ qw/import args/ ] };

    That would be backwards compatible and get around that limitation.

    • Also import() isn't just used to, umm, import. It's quite a common idiom to use it to pass global settings to a class, such as telling it to put temporary files in a particular place, or changing its default timezone. Those still have their place in OO programming.

      Even so, I don't consider this to be a problem with base.pm. If I really need to do things like that, the work-around is trivial.

    • Here's what I expressed on p5p: 80% of the code and syntax will be devoted to a feature that you use 1% of the time and has a perfectly reasonable work around that everyone understands. Just not worth the extra work/complexity/documentation/bugs.


              use base qw(Foo);
              use Foo qw(some args);


      And isn't it "let's add just one more feature" that got base.pm in this situation in the first place?