NAME
POE::Component::AI::MegaHAL - A non-blocking wrapper around
AI::MegaHAL.
VERSION
version 1.20
SYNOPSIS
use POE qw(Component::AI::MegaHAL);
my $poco = POE::Component::AI::MegaHAL->spawn( autosave => 1, debug => 0,
path => '.', options => { trace => 0 } );
POE::Session->create(
package_states => [
'main' => [ qw(_start _got_reply) ],
],
);
$poe_kernel->run();
exit 0;
sub _start {
$_[KERNEL]->post( $poco->session_id() => do_reply => { text => 'What is a MegaHAL ?', event => '_got_reply' } );
undef;
}
sub _got_reply {
print STDOUT $_[ARG0]->{reply} . "\n";
$_[KERNEL]->post( $poco->session_id() => 'shutdown' );
undef;
}
DESCRIPTION
POE::Component::AI::MegaHAL provides a non-blocking wrapper around
AI::MegaHAL.
METHODS
spawn
Accepts a number of arguments:
'autosave' and 'path' are passed to AI::MegaHAL;
'debug' sets the debug mode;
'options' is a hashref of parameters to pass to the component's POE::Session;
'alias', is supported for using POE::Kernel aliases;
session_id
Returns the component session id.
INPUT
These are the events that we'll accept.
All megahal related events accept a hashref as the first parameter. You
must specify 'event' as the event in your session where you want the
response to go. See the example in the SYNOPSIS.
The 'shutdown' event doesn't require any parameters.
intial_greeting
Solicits the initial greeting returned by the brain on start-up.
do_reply
Submits text to the brain and solicits a reply. In the hashref you
must specify 'text' with the data you wish to submit to the
AI::MegaHAL object.
learn
Submits text to the brain without soliciting a reply. In the hashref
you must specify 'text' with the data you wish to submit to the
AI::MegaHAL object.
_cleanup
Saves the megahal brain to file.
shutdown
Shuts the component down gracefully. Any pending requests will be
serviced and return events dispatched.
OUTPUT
Events generated by the component in response to the above input will
have a hashref as ARG0. $hashref->{reply} will contain the applicable
response from the brain.
SEE ALSO
AI::MegaHAL
http://megahal.sourceforge.net/
POE
AUTHORS
* Chris Williams <chris@bingosnet.co.uk>
* David Davis <xantus@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2017 by Chris Williams.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.