http://www.perlmonks.org?node_id=701444


in reply to Re: Juerd, the overlooked (ORMs, Webapps)
in thread Juerd, the overlooked (ORMs, Webapps)

Since perlsub says that lvalue subs are still experimental, I wouldn't recommend writing an interface like that, if you have a choice.

  • Comment on Re^2: Juerd, the overlooked (ORMs, Webapps)

Replies are listed 'Best First'.
Re^3: Juerd, the overlooked (ORMs, Webapps)
by jettero (Monsignor) on Jul 31, 2008 at 11:23 UTC

    Experimental like "(?{ code })" or experimental like pseudo-hashes? That's the question.

    -Paul

        This argument extrapolated leads to "variables considered harmful" and is total bollocks. Indeed it can be problematic when you can assign arbitrary values to variables, with no validation whatsoever. That's also the basis of many programming languages, and programming would be very impractical without this.

        An object property is just a variable attached to the object. It's insane to treat it much differently.

        While value validation is a useful addition, it's not necessary. Many a time value validation means you're limited by the API designer's creativity, and gets in the way.

        Until we have Perl 6, I prefer to write code that isn't picky. Having tolerant code is not so bad as it looks, especially if you consider that making something non-picky afterwards is hard in Perl 5.

      You question boils down to experimental like "not working reliably, and being marked experimental for the last two major releases" or experimental like "removed in newer perls"?

      I don't think lvalue subs have been removed in blead, so it's more likely the first option.

      lvalue returns are orthodox in Perl 6, and with the trend to back-porting Perl 6 features to 5.x, I don't see them dropping it.