laziness, impatience, and hubris PerlMonks

### Re^2: intermix list of items

by ikegami (Pope)
 on Oct 10, 2004 at 18:42 UTC ( #398022=note: print w/replies, xml ) Need Help??

in reply to Re: intermix list of items
in thread intermix list of items

Here's an algorithm that doesn't suffer from the problem mentioned in the Note above:

```my @list = ('10.1.1.[1..2]', '10.2.2.[1..2]', '10.3.3.[3..6]');

my @list_prime =
map {
my \$n = \$_;
\$n =~ s/\[(\d+)\.\.(\d+)\]//;
[ \$n, \$1, \$2 ]
} @list;

my @ordered_list;

my \$done;
do {
\$done = 1;
foreach (@list_prime) {
next unless defined(\$_);
if (\$_->[1] > \$_->[2]) { undef(\$_); next }
push(@ordered_list, \$_->[0].(\$_->[1]++));
\$done = 0;
}
} while (!\$done);

use Data::Dumper;
print Dumper(@ordered_list);

__END__
output
======
\$VAR1 = '10.1.1.1';  # First  from first.
\$VAR2 = '10.2.2.1';  # First  from second.
\$VAR3 = '10.3.3.3';  # First  from third.
\$VAR4 = '10.1.1.2';  # Second from first.
\$VAR5 = '10.2.2.2';  # Second from second.
\$VAR6 = '10.3.3.4';  # Second from third.
\$VAR7 = '10.3.3.5';  # Third  from third.
\$VAR8 = '10.3.3.6';  # Fourth from third.

It can probably be optimised.

Create A New User
Node Status?
node history
Node Type: note [id://398022]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (7)
As of 2021-04-20 16:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?

No recent polls found

Notices?