Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re: More effective way to increase two elements of a list in parallel?

by wade (Pilgrim)
on May 06, 2008 at 18:09 UTC ( [id://685023]=note: print w/replies, xml ) Need Help??


in reply to More effective way to increase two elements of a list in parallel?

I see a few things, here.

First, you should always use:

use strict; use warnings; use diagnostics; # not everyone puts this in but I think it's helpful

But that's just general stuff. The big question I have is why use a while (especially with the -- eesh -- next statement) when an if is really what you want? Rewriting this using your (excellent) suggestion of the reformulated for:

foreach my $pdu_num (3 .. 8) { $pdu_num = 11 - $pdu_num unless defined $order; if (my $node = shift @nodes) { $map{$node} = $pdu . '['.$pdu_num.']'; } }

gives, I think, a much clearer chunk of code

--
Wade

Replies are listed 'Best First'.
Re^2: More effective way to increase two elements of a list in parallel?
by FunkyMonk (Chancellor) on May 06, 2008 at 23:05 UTC
    Note that
    if (my $node = shift @nodes) { $map{$node} = $pdu . '['.$pdu_num.']'; }

    is not the same as the OP's code. Your code won't process the if if the first element of @nodes is false. Better to use

    if (@nodes) { my $node = shift @nodes; $map{$node} = $pdu . '['.$pdu_num.']'; }


    Unless I state otherwise, all my code runs with strict and warnings

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others perusing the Monastery: (3)
As of 2024-04-19 18:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found