Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?

Re: Idiom for looping thru key/value pairs

by tinman (Curate)
on May 26, 2001 at 00:36 UTC ( #83422=note: print w/replies, xml ) Need Help??

in reply to Idiom for looping thru key/value pairs

Please correct me if I'm wrong, but perhaps you could use splice ?

#!/usr/bin/perl -w use strict; my @list = ('1','val','2','val2','1','val3'); while((my $first, my $last) = splice(@list,0,2)) { print "$first -> $last \n"; }


Replies are listed 'Best First'.
Re: Re: Idiom for looping thru key/value pairs
by frag (Hermit) on May 26, 2001 at 02:15 UTC

    The problem with splice is that it would chop the values out of the original array, and he doesn't want to use a dupe.

    This might be the time to use old-timey C-style for:

    my @list = ('1','val','2','val2','1','val3'); my $self = { _subfields => [@list] }; my @subs; for (my $index = 1; $index < @{$self->{_subfields}}; $index+=2) { push @subs, ${$self->{_subfields}}[$index]; } # waa-la: print $_,"\n" foreach (@subs);
    It's ugly, but it avoids the duplication. For the cost of a scalar you could always use
    my $aryref = $self->{_subfields};

    -- Frag.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (4)
As of 2020-06-02 02:42 GMT
Find Nodes?
    Voting Booth?
    Do you really want to know if there is extraterrestrial life?

    Results (12 votes). Check out past polls.