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.
  • Many attributes in a compact layout become visually disturbing. Aligning things here is a must for readability. Apparently Vim has some kind of magic I'm envious of.

    No, that's just applying my default .perltidyrc.

  • First off, thanks for the nice review, it is good to get feedback from new Moose users. The #moose echo chamber on IRC is obviously not so helpful in this regard.

    The default of ''is => "ro"' is badly chosen ...

    Actually the default is to not create any accessors at all. While it might seem useless, it is a perfectly valid use case, take this example for instance:

    has 'some_flag' => (
        predicate => 'is_some_flag_set'

    This will create a predicate method for checking if the flag is

    • Regarding "docs". Do you know of a book that may be in the works? It seems to me that Moose is such a good thing for Perl OO that it would be a good thing to have a book out there as well.

    • It differs from Perl in that it wont accept an arbitrary value and treat it as true.

      That was what I was referring to. Maybe if it's advertised as these-are-the-Perl-types kind of type constraint it should actually conform to the Perl true/false idea, and if you want to stricten it up to only support 1/0/undef you use a different one (Bool vs Boolean) ?

      Anyway, it surprised me when using it, that's all.


      • I think perhaps you are mistaking a "value" for the "value of an expression". When Perl sees

        if (@foo) { ... }

        it evaluates @foo as an expression, and in that context it returns true. If I were to invent a "boolean" built in similar to the "scalar" built in, which forced "boolean context", then the above code would desugar into

        if (boolean(@foo)) { ... }

        Just as

        my $foo = @foo;

        desugars into

        my $foo = scalar @foo;

        Now in the context of Moose, when you assign a value to an accessor it does not impose the "b