in reply to Re^2: style guidance
in thread style guidance

What, if anything, is gained by inserting a control statement (given) here in a context where it shouldn't ever affect the program flow? Are you just showing another way to do it or is there some subtlety to given which I have failed to grok?

Replies are listed 'Best First'.
Re^4: style guidance
by moritz (Cardinal) on Nov 08, 2009 at 13:11 UTC

    It's "just" another way to do it.

    What's the point of writing anything you write one way, and not another way?

    given is a syntactically nice way to to assign to my $_, which I happen to like. I don't see why it has to be connected to control flow. (Which is also the reason why the given/when construct is not spelled select/case in Perl: both given and when can be used independently).

    The strength of the topic variable $_ is that you can use it without writing $_ explicitly. given takes this one step further and makes the assignment also implicit.

    I also happen to like given because in Perl 6 you can call any method doit on $_ by writing .doit, the method doesn't have to be special for that in any way.

    So when you write lots of method calls on the same object, you can save a typing this way:

    # Perl 6 code here given $svg-canvas { .rect: x => 5, y => 5, height => 90, width => 190; .circle: cx => 100, cy => 50, r => 20, style => 'fill: black'; .text: 'Some caption', x => 20, y => 15; # etc. }
    Perl 6 - links to (nearly) everything that is Perl 6.
      Ah, cool... Thanks for the final note on the Perl 6 syntax. I'd not heard about that piece and it's very reminiscent of an old with syntax from (IIRC) Delphi/Object Pascal that I've often missed having around in other languages.