in reply to Need a better way to break out a range of addresses...

Here is one way of doing it:
my $re = join '\\.' => ( '([-\\d]+)' ) x 4; while ( <DATA> ) { my ( $p0, $p1, $p2, $p3) = map [ expand( $_)], /$re/; for my $i0 ( @$p0 ) { for my $i1 ( @$p1 ) { for my $i2 ( @$p2 ) { for my $i3 ( @$p3 ) { print "$i0.$i1.$i2.$i3\n"; } } } } } sub expand { my ( $from, $to) = split /-/, "$_[ 0]-$_[ 0]"; $from .. $to; }
Anno