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? | [reply] [d/l] [select] |
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.
| [reply] [d/l] [select] |
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.
| [reply] [d/l] |