http://www.perlmonks.org?node_id=338493


in reply to Service: port to name

Here's some code that generates a hash similar to Jeffa's, but it's not a one liner. Meant for use in another program...
#!/usr/bin/perl use warnings; use strict; # Hash that we'll store all the values (the name) in; keys are ports i +n # the form of ###/proto, i.e. 22/tcp my %port2name; open my $fh, '<', '/etc/services' or die "Failed open! $!"; while (<$fh>) { next if /^#/ || /^$/; chomp; s/\s*#.*$//; my ($name, $port) = split /\s+/, $_; $port2name{$port} = $name; } close $fh; # ... do whatever with the hash now # For example, grab arguments from command line and # print out name for each for (@ARGV) { print exists $port2name{$_} ? "$_: $port2name{$_}" : 'Unknown port/proto combination.', "\n"; }