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:
RT: CPAN's request tracker (report bugs here)
https://rt.cpan.org/NoAuth/Bugs.html?Dist=Net-Connection-Sort
Search CPAN
Git Repo
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)