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

Re^3: array within an array

by hbm (Hermit)
on Oct 07, 2011 at 16:21 UTC ( [id://930212]=note: print w/replies, xml ) Need Help??


in reply to Re^2: array within an array
in thread array within an array

I think this does what you want:

use warnings; use strict; my @charges = qw/ch1 ch2 ch3 ch4 ch5 ch6 ch7 ch8 ch1 ch2 ch3 ch4 ch5 ch1 ch2 ch6 ch7 ch4 ch3 ch9 ch2 ch4/; my %bundle1 = map { $_ => 0 } qw(ch3 ch4 ch6); my %b = %bundle1; my @final; my @del; for (@charges) { if (exists $bundle1{$_}) { delete $b{$_}; if (!keys %b) { # seen them all, so reset %b = %bundle1; @del = (); push@final,'chx'; } else { # keep it, in case not all are seen push@del,$_; } } else { push@final,$_; } } push@final,@del; # add back any remainders print "@final\n"; __OUTPUT__ ch1 ch2 ch5 chx ch7 ch8 ch1 ch2 ch5 ch1 ch2 chx ch7 ch9 ch2 ch4 ch3 ch +4

One possible problem: it will slightly alter the order of your list if a partial bundle is seen.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others cooling their heels in the Monastery: (3)
As of 2024-04-23 22:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found