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.
  • Innovative. Thanks for sharing this.

    I wish for customizing the name of "$self", but this is a nice start, and a welcome competitor to "self.pm", which I also liked it was a little weird because it was "self", not "$self", and didn't actually allow you to "shift" off $self through the system, just reference it.

    Wow, that was a run-on sentence.

          Mark
    • Mark: You just inspired me to write selfvars.pm, now on CPAN. :-)
      • Wow, Thanks Audrey. I like it.

        I wonder if it used "Sub::Exporter", if the "self" scalar name could be easily customized, like it can for "self.pm". However, I don't see any examples in the Sub::Exporter docs of exporting scalars. (Perhaps only because it is recommended against in most cases).
        • No, it doesn't use Sub::Exporter; as of version 0.05, it manages the exporting by itself.

          You can customize the "self" scalar name with an import line:

          use selfvars -self => 'this', -args => 'opts';

          Or only import self as $this but not args:

          use selfvars -self => 'this';

          Or only import self as $self:

          use selfvars -self;

          More suggestions are welcome as well!

      • Excellent! So long Spiffy.
      • Clever, but performance is awful. Tied variables. :(

        Then again, I've found some fascinating bugs in Method::Signatures.
        • True, but although there is technically a 10-fold difference between 1191563/s vs 114688/s per lookup, in practice I wonder how it's going to matter -- even if it's put in a loop that's going to look up $self more than 100000 times, the difference will still be less than one second. :-)
          • $self gets used an awful lot. It's one of those things that adds a drag to every single aspect of your code. As much as we'd like to, you can't always ignore the constant part of big-O.
      • That's beautiful, Audrey, thank you. One thought - I always pass by reference, that is to say, $vars. If that could make it into a future selfvars.pm as an option, it would be awesome.
        • Do you mean that you always pass a single by-name hash reference argument, in a PBP-esque fashion?

          $obj->meth({ a => 1, b => 2 });

          If so, how about making available a %opts so you can say:

          sub meth {
              $self->foo($opts{a});
          }

          If you wish you can even import selfvars like this, populating named options into %_:

          use selfvars -opts => '_', -self;
          sub meth {
              $self->foo($_{a});
          }

          Would that resemble what you want?

          • 0.10 of selfvars very definitely resembles what I want. I dub thee Lady Leet of Awesomeland!