File Coverage

blib/lib/Net/Connection/Sort/port_l.pm
Criterion Covered Total %
statement 21 24 87.5
branch 2 4 50.0
condition 1 3 33.3
subroutine 5 5 100.0
pod 1 2 50.0
total 30 38 78.9


line stmt bran cond sub pod time code
1             package Net::Connection::Sort::port_l;
2              
3 2     2   184732 use 5.006;
  2         36  
4 2     2   10 use strict;
  2         4  
  2         42  
5 2     2   9 use warnings;
  2         3  
  2         395  
6              
7             =head1 NAME
8              
9             Net::Connection::Sort::port_l - Sorts the connections via the local port numerically.
10              
11             =head1 VERSION
12              
13             Version 0.0.0
14              
15             =cut
16              
17             our $VERSION = '0.0.0';
18              
19              
20             =head1 SYNOPSIS
21              
22             This currently implements numeric sorting only. For non-numeric sorting using port_la.
23              
24             use Net::Connection::Sort::port_l;
25             use Net::Connection;
26             use Data::Dumper;
27            
28             my @objects=(
29             Net::Connection->new({
30             'foreign_host' => '3.3.3.3',
31             'local_host' => '4.4.4.4',
32             'foreign_port' => '23',
33             'local_port' => '1133',
34             'sendq' => '1',
35             'recvq' => '0',
36             'state' => 'ESTABLISHED',
37             'proto' => 'tcp4',
38             'ports' => 0,
39             }),
40             Net::Connection->new({
41             'foreign_host' => '1.1.1.1',
42             'local_host' => '2.2.2.2',
43             'foreign_port' => '22',
44             'local_port' => '11132',
45             'sendq' => '1',
46             'recvq' => '0',
47             'state' => 'ESTABLISHED',
48             'proto' => 'tcp4',
49             'ports' => 0,
50             }),
51             Net::Connection->new({
52             'foreign_host' => '5.5.5.5',
53             'local_host' => '6.6.6.6',
54             'foreign_port' => '80',
55             'local_port' => '11131',
56             'sendq' => '1',
57             'recvq' => '0',
58             'state' => 'ESTABLISHED',
59             'proto' => 'tcp4',
60             'ports' => 0,
61             }),
62             Net::Connection->new({
63             'foreign_host' => '3.3.3.3',
64             'local_host' => '4.4.4.4',
65             'foreign_port' => '21',
66             'local_port' => '11133',
67             'sendq' => '1',
68             'recvq' => '0',
69             'state' => 'ESTABLISHED',
70             'proto' => 'tcp4',
71             'ports' => 0,
72             }),
73             );
74            
75             my $sorter=$sorter=Net::Connection::Sort::port_l->new;
76            
77             @objects=$sorter->sorter( \@objects );
78            
79             print Dumper( \@objects );
80              
81             =head1 METHODS
82              
83             =head2 new
84              
85             This initiates the module.
86              
87             No arguments are taken and this will always succeed.
88              
89             my $sorter=$sorter=Net::Connection::Sort::port_l->new;
90              
91             =cut
92              
93             sub new{
94 1     1 1 1454 my %args;
95 1 50       5 if(defined($_[1])){
96 0         0 %args= %{$_[1]};
  0         0  
97             };
98              
99              
100 1         2 my $self = {
101             };
102 1         1 bless $self;
103              
104 1         3 return $self;
105             }
106              
107             =head2 sort
108              
109             This sorts the array of Net::Connection objects.
110              
111             One object is taken and that is a array of objects.
112              
113             @objects=$sorter->sorter( \@objects );
114            
115             print Dumper( \@objects );
116              
117             =cut
118              
119             sub sorter{
120 1     1 0 295 my $self=$_[0];
121 1         2 my @objects;
122 1 50 33     8 if (
123             defined( $_[1] ) &&
124             ( ref($_[1]) eq 'ARRAY' )
125             ){
126 1         2 @objects=@{ $_[1] };
  1         3  
127             }else{
128 0         0 die 'The passed item is either not a array or undefined';
129             }
130              
131             @objects=sort {
132 1         4 $a->local_port <=> $b->local_port
  5         23  
133             } @objects;
134              
135 1         8 return @objects;
136             }
137              
138             =head1 AUTHOR
139              
140             Zane C. Bowers-Hadley, C<< >>
141              
142             =head1 BUGS
143              
144             Please report any bugs or feature requests to C, or through
145             the web interface at L. I will be notified, and then you'll
146             automatically be notified of progress on your bug as I make changes.
147              
148              
149              
150              
151             =head1 SUPPORT
152              
153             You can find documentation for this module with the perldoc command.
154              
155             perldoc Net::Connection::Sort
156              
157              
158             You can also look for information at:
159              
160             =over 4
161              
162             =item * RT: CPAN's request tracker (report bugs here)
163              
164             L
165              
166             =item * AnnoCPAN: Annotated CPAN documentation
167              
168             L
169              
170             =item * CPAN Ratings
171              
172             L
173              
174             =item * Search CPAN
175              
176             L
177              
178             =item * Git Repo
179              
180             L
181              
182             =back
183              
184              
185             =head1 ACKNOWLEDGEMENTS
186              
187              
188             =head1 LICENSE AND COPYRIGHT
189              
190             This software is Copyright (c) 2019 by Zane C. Bowers-Hadley.
191              
192             This is free software, licensed under:
193              
194             The Artistic License 2.0 (GPL Compatible)
195              
196              
197             =cut
198              
199             1; # End of Net::Connection::Sort