Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re: style guidance

by Khen1950fx (Canon)
on Nov 07, 2009 at 23:24 UTC ( [id://805695]=note: print w/replies, xml ) Need Help??


in reply to style guidance

GrandFather's way is the best way. I had done it like:

use strict; use warnings; use 5.010; sub do_stuff1 { my $_ = shift @_; chomp $_; say; }
Update: added "my" to localize $_

Replies are listed 'Best First'.
Re^2: style guidance
by moritz (Cardinal) on Nov 08, 2009 at 12:26 UTC
    Or even
    use strict; use warnings; use 5.010; sub do_stuff1 { given($_[0]) { chomp; say; } }
    Perl 6 - links to (nearly) everything that is Perl 6.
      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?

        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.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://805695]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others learning in the Monastery: (3)
As of 2025-11-14 03:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    What's your view on AI coding assistants?





    Results (70 votes). Check out past polls.

    Notices?
    hippoepoptai's answer Re: how do I set a cookie and redirect was blessed by hippo!
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.