В примере пара ошибочек из-за чего он и не работает. Вот исправленный :$find_net = '123.123.45.4/30';
$some_ip = '123.123.45.5';
my ($net_ip, $net_mask) = split(/\//, $find_net);
my ($ip1, $ip2, $ip3, $ip4) = split(/\./, $net_ip);
my $net_ip_raw = pack ('CCCC', $ip1, $ip2, $ip3, $ip4);
my $net_mask_raw = pack ('B32', (1 x $net_mask), (1 x (32 - $net_mask)));
my ($ip1, $ip2, $ip3, $ip4) = split(/\./, $some_ip);
my $some_ip_raw = pack ('CCCC', $ip1, $ip2, $ip3, $ip4);
# $some_ip_raw вычисляем по аналогии с $net_ip_raw
if (($some_ip_raw & $net_mask_raw) eq $net_ip_raw){
print "$some_ip входит в подсеть $find_net";
}