This code doesn't interpolate but it parses your input into something NetAddr::IP might agree with...:
my $range = shift @ARGV; # E.g. 10.0.10-20.0
if ($range =~ /([0-9\.]+)\-([0-9\.]+)/) {
my $begin = $1;
my $end = $2;
my @begin_quad = split(/\./, $begin);
my @end_quad = split(/\./, $end);
push @begin_quad, 0 while @begin_quad < 4;
my $index = 0;
while (@end_quad < 4) {
unshift @end_quad, $begin_quad[$index];
$index;
}
print "Begin: ".join('.', @begin_quad)."\n";
print "End: ".join('.', @end_quad)."\n";
} else {
die "Expected a range";
}
exit;
--
Time flies when you don't know what you're doing
|