my $x = '255.0.0.0';
print "$x is a valid mask!\n" if validateMask($x);
sub validateMask {
return # return undef if it's not complete
unless $_[0] =~/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;
$_[0] = unpack (
"B32",
pack(
"C4",
split ( /\./, $_[0] )
)
);
return # return undef if we find an invalid
if $_[0] =~ /01/; # mask ( a zero followed by a one )
return 1; # return 1 if everything is okay
}
####
11111111000000000000000000000000 is a valid mask!
####
print "255.0.0.0 is a valid mask!\n" if validateMask('255.0.0.0');
####
Modification of a read-only value attempted at ./idnopheq.pl line 5.
####
my $mask = shift;
####
sub validateMask {
$_ = shift;
return unless /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;
unpack('B32', pack('C4', split /\./)) =~ /01/ ? undef : 1;
}