/usr/local/CPAN/Apache2-BalanceLogic/Apache2/BalanceLogic/Plugin/DistByURL.pm


package Apache2::BalanceLogic::Plugin::DistByURL;

use strict;
use warnings;
use base qw( Apache2::BalanceLogic::Plugin );

sub run {
    my $self = shift;
    my $r    = shift;

    my $uri = $r->uri;
    my $route_id;
    my @route_array;
    while ( my ( $key, $value ) = each( %{ $self->{conf} } ) ) {
        if ( $key =~ /\/(.+)\// ) {
            my $regex = $1;
            if ( $uri =~ /$regex/ ) {
                @route_array = @$value;
            }
        }
    }
    @route_array = @{ $self->{conf}->{other} } unless @route_array;
    my $i = int( rand( $#route_array + 1 ) );
    $route_id = $route_array[$i];

    return $route_id;
}

1;