A perl implementation of a finger client.
use Net::Finger;
# You can put the response in a scalar... $response = finger('[email protected]'); unless ($response) { warn "Finger problem: $Net::Finger::error"; }
# ...or an array. @lines = finger('[email protected]', 1);
Net::Finger is a simple, straightforward implementation of a finger client in Perl \*(-- so simple, in fact, that writing this documentation is almost unnecessary.
This module has one automatically exported function, appropriately entitled \*(C`finger()\*(C'. It takes two arguments:
A username or email address to finger. (Yes, it does support the vaguely deprecated \*(L"user@host@host\*(R" syntax.) If you need to use a port other than the default finger port (79), you can specify it like so: \*(L"username@hostname:port\*(R".
(Optional) A boolean value for verbosity. True == verbose output. If you don't give it a value, it defaults to false. Actually, whether this output will differ from the non-verbose version at all is up to the finger server.
\*(C`finger()\*(C' is context-sensitive. If it's used in a scalar context, it will return the server's response in one large string. If it's used in an array context, it will return the response as a list, line by line. If an error of some sort occurs, it returns undef and puts a string describing the error into the package global variable $Net::Finger::error. If you'd like to see some excessively verbose output describing every step \*(C`finger()\*(C' takes while talking to the other server, put a true value in the variable $Net::Finger::debug.
Here's a sample program that implements a very tiny, stripped-down finger\|(1):
#!/usr/bin/perl -w
use Net::Finger; use Getopt::Std; use vars qw($opt_l);
getopts('l'); $x = finger($ARGV[0], $opt_l);
if ($x) { print $x; } else { warn "$0: error: $Net::Finger::error\n"; }
Doesn't yet do non-blocking requests. (\s-1FITNR\s0. Really.)
Doesn't do local requests unless there's a finger server running on localhost.
Contrary to the name's implications, this module involves no teledildonics.
Dennis Taylor, <[email protected]>
perl\|(1), finger\|(1), \s-1RFC\s0 1288.