AnyEvent-Finger
view release on metacpan or search on metacpan
lib/AnyEvent/Finger.pm view on Meta::CPAN
package AnyEvent::Finger;
use strict;
use warnings;
use base qw( Exporter );
our @EXPORT_OK = qw( finger_client finger_server );
# ABSTRACT: Simple asynchronous finger client and server
our $VERSION = '0.14'; # VERSION
sub finger_client ($$$;$)
{
my($hostname) = shift;
require AnyEvent::Finger::Client;
AnyEvent::Finger::Client
->new( hostname => $hostname )
->finger(@_);
();
}
# keep the server object in scope so that
# we don't unbind from the port. If you
# don't want this, then use the OO interface
# for ::Server instead.
my $keep = [];
sub finger_server ($;$)
{
require AnyEvent::Finger::Server;
my $server = AnyEvent::Finger::Server
->new
->start(@_);
push @$keep, $server;
$server;
}
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
AnyEvent::Finger - Simple asynchronous finger client and server
=head1 VERSION
version 0.14
=head1 SYNOPSIS
client:
use AnyEvent::Finger qw( finger_client );
finger_client 'localhost', 'username', sub {
my($lines) = @_;
print "[response]\n";
print join "\n", @$lines;
};
server:
use AnyEvent::Finger qw( finger_server );
my %users = (
grimlock => 'ME GRIMLOCK HAVE ACCOUNT ON THIS MACHINE',
optimus => 'Freedom is the right of all sentient beings.',
);
finger_server sub {
my $tx = shift; # isa AnyEvent::Finger::Transaction
if($tx->req->listing_request)
{
# respond if remote requests list of users
$tx->res->say('users: ', keys %users);
}
else
{
( run in 0.832 second using v1.01-cache-2.11-cpan-2398b32b56e )