my $oct_cnt = -1; for (1 .. 4) { $oct_cnt++; if ($mask[$oct_cnt] =~ m/255/ || $mask[$oct_cnt] =~ m/0/) { #print "skipping, $oct_cnt is 255 or 0"; push(@sub, $mask[$oct_cnt]); } else { #print "found non 255 or zero at $oct_cnt with $mask[$oct_cnt]"; my $sum = 256 - $mask[$oct_cnt]; my $rem = $ip[$oct_cnt] / $sum; $rem =~ m/([0-9]+)\./; my $clean_rem = $1; push(@sub, $clean_rem * $sum); # determine what octet we are, set remainders to 0 if($oct_cnt+1 < 4) { for ($oct_cnt+1 .. 4) { push(@sub, $ip[$oct_cnt+1]); } } last if;