NAME

Net::Connection::Sort - Sorts array of Net::Connection objects.

VERSION

Version 0.2.0

SYNOPSIS

use Net::Connection::Sort;
use Net::Connection;
use Data::Dumper;

 my @objects=(
              Net::Connection->new({
                                    'foreign_host' => '3.3.3.3',
                                    'local_host' => '4.4.4.4',
                                    'foreign_port' => '22',
                                    'local_port' => '11132',
                                    'sendq' => '1',
                                    'recvq' => '0',
                                    'state' => 'ESTABLISHED',
                                    'proto' => 'tcp4'
                                    }),
              Net::Connection->new({
                                    'foreign_host' => '1.1.1.1',
                                    'local_host' => '2.2.2.2',
                                    'foreign_port' => '22',
                                    'local_port' => '11132',
                                    'sendq' => '1',
                                    'recvq' => '0',
                                    'state' => 'ESTABLISHED',
                                    'proto' => 'tcp4'
                                    }),
              Net::Connection->new({
                                    'foreign_host' => '5.5.5.5',
                                    'local_host' => '6.6.6.6',
                                    'foreign_port' => '22',
                                    'local_port' => '11132',
                                    'sendq' => '1',
                                    'recvq' => '0',
                                    'state' => 'ESTABLISHED',
                                    'proto' => 'tcp4'
                                    }),
              Net::Connection->new({
                                    'foreign_host' => '3.3.3.3',
                                    'local_host' => '4.4.4.4',
                                    'foreign_port' => '22',
                                    'local_port' => '11132',
                                    'sendq' => '1',
                                    'recvq' => '0',
                                    'state' => 'ESTABLISHED',
                                    'proto' => 'tcp4'
                                    }),
             );

my $sort_args={
              type=>'host_f',
              invert=>0,
              };

my $mcs;
eval{
    $mcs=Net::Connection::Sort->new( $sort_args );
};

if ( ! defined( $mcs ) ){
    print "Failed to init the sorter... ".$@;
}

my @sorted=$mcs->sorter( \@objects );

print Dumper( \@sorted );

METHODS

new

This initiates the module.

One argument is taken and that is a hash ref with two possible keys, 'type' and 'invert'. If not passed or any of the keys are undef, then the defaults will be used.

'type' is the module to use. It is relative to 'Net::Connection::Sort', so 'host_f' becomes 'Net::Connection::Sort::host_f'. Only word characters are accepted here and anything else will result in it dying. See "SORT TYPES" below for the list of what may be used.

'invert' reverses the order returned by the sorter if set to true.

my $sort_args={
              type=>'host_f',
              invert=>0,
              };

my $mcs;
eval{
    $mcs=Net::Connection::Sort->new( $sort_args );
};

if ( ! defined( $mcs ) ){
    print "Failed to init the sorter... ".$@;
}

sorter

This sorts the array of Net::Connection objects.

One object is taken and that is a array of objects. Anything else will result in it dying.

my @sorted=$mcs->sorter( \@objects );

print Dumper( \@sorted );

SORT TYPES

Any of the below may be used as the 'type' when calling new. Anything else will result in new dying.

host_f - Host, foreign
host_fl - Host, foreign then local
host_l - Host, local
host_lf - Host, local then foreign
pid - Process ID
port_f - Port, foreign, numeric
port_fa - Port, foreign, alpha
port_l - Port, local, numeric
port_la - Port, local, alpha
proto - Network connection protocol
ptr_f - PTR, foreign
ptr_l - PTR, local
state - Connection state
uid - User ID
unsorted - Leaves the order as is
user - Username

The alpha port types sort on the service name where there is one. Ports without a service name sort after those with one, numerically.

AUTHOR

Zane C. Bowers-Hadley, <vvelox at vvelox.net>

BUGS

Please report any bugs or feature requests to bug-net-connection-sort at rt.cpan.org, or through the web interface at https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-Connection-Sort. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc Net::Connection::Sort

You can also look for information at:

ACKNOWLEDGEMENTS

LICENSE AND COPYRIGHT

This software is Copyright (c) 2019 by Zane C. Bowers-Hadley.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)