Slash Boxes
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.
More | Login | Reply
Loading... please wait.
  • I share your instinct and to refactor this, but your refactored version would strike me as odd immediately upon finding it: why grep { $_ } map { $foo } when that’s exactly the same as grep { $foo }?

    And I think the interpolation is just too clever. It also makes it unnecessarily hard to add or remove method calls that may not follow this naming scheme, should that ever be necessary. So I’d simply say

    sub schema_for_class {
        my $self = shift;
            my ( $class

    • by bpphillips (5948) on 2005.12.05 7:51 (#44996)
      Isn't the return value from your version simply going to be:

      You can't introduce side affects in a grep block. $_ always comes out the left side regardless of what happens inside the grep block (which is why you would want a grep {$_} map {$foo} pattern).
      • Ack! Of course. Sigh.

        I guess one could use

        map {
            my $method = $_;
            $self->$method( $class ) || ();
        } @method;

        but I’m not sure how well advised that is…