package Regexp::Common::net::CIDR; use strict; use warnings; our $VERSION = '0.03'; use Regexp::Common qw(pattern clean no_defaults); my $ip_unit = "(?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])"; pattern name => [qw(net CIDR IPv4)], create => "(?k:$ip_unit\\.$ip_unit(?:\\.$ip_unit)?(?:\\.$ip_unit)?)\\/(?k:3[0-2]|[1-2]?[0-9])"; 1; __END__ =head1 NAME Regexp::Common::net::CIDR -- provide patterns for CIDR blocks. =head1 SYNOPSIS use Regexp::Common (); use Regexp::Common::net::CIDR (); while (<>) { /$RE{net}{CIDR}{IPv4}/ and print "Contains a CIDR.\n"; } =head1 DESCRIPTION Patterns for CIDR blocks. Now only next IPv4 formats are supported: xxx.xxx/xx xxx.xxx.xxx/xx xxx.xxx.xxx.xxx/xx With {-keep} stores address in $1 and number of bits in $2. =head1 INSTALLATION perl Makefile.PL make make install =head1 CAVEATS As L doesn't work well with extensions named C you have to load this extension yourself with C or C. =head1 AUTHOR Ruslan U. Zakirov =cut