Form::Processor::Field::CIDR_List - Muliplt CIDR addresses


Form-Processor documentation Contained in the Form-Processor distribution.

Index


Code Index:

NAME

Top

Form::Processor::Field::CIDR_List - Muliplt CIDR addresses

SYNOPSIS

Top

See Form::Processor

DESCRIPTION

Top

Allow entry of multiple CIDR formatted IP addresses and masks. This field simply splits and validates the addresses using Net::CIDR.

Widget

Fields can be given a widget type that is used as a hint for the code that renders the field.

This field's widget type is: "text".

Subclass

Fields may inherit from other fields. This field inherits from: "Text";

DEPENDENCIES

Top

Net::CIDR

AUTHORS

Top

Bill Moseley

COPYRIGHT

Top

SUPPORT / WARRANTY

Top

Form::Processor is free software and is provided WITHOUT WARRANTY OF ANY KIND. Users are expected to review software for fitness and usability.


Form-Processor documentation Contained in the Form-Processor distribution.

package Form::Processor::Field::CIDR_List;
use strict;
use warnings;
use base 'Form::Processor::Field::Text';
our $VERSION = '0.03';

use Net::CIDR;


sub validate {
    my $self = shift;

    return unless $self->SUPER::validate;

    my $input = $self->input || return 1;

    for my $addr ( split /[^\d\.\/]+/, $input ) {
        eval { Net::CIDR::cidr2range( $addr ) };

        next unless $@;

        return $self->add_error( "Failed to parse address '$addr'" );
    }

    return 1;
}



1;