NAME
Tie::RemoteVar - Share variables everywhere
SYNOPSIS
use Tie::RemoteVar;
# server side
my $vs = Tie::RemoteVar->new(allow => '127.0.0.1');
$vs->start;
# client side
tie(%HASH, 'Tie::RemoteVar', id => 'meatball');
untie %HASH;
DESCRIPTION
Users can treat inter-process or even inter-host variables almost as normal ones using Tie::RemoteVar instead of stereotypical tedious coding.
To use this facility, users need to setup a server first. It is simple. The only requirements are allowed hosts' addresses and server's port.
Localhost access is not presumed valid before users make an explicit statement.
my $vs = Tie::RemoteVar->new(
port => 1234 # default is 1234
allow => [
'127.0.0.1',
'140.112..+'
],
);
then start it
$vs->start;
After setup is completed, users are empowered to access variables across processes or hosts. Likewise, default port is 1234 and default host is 127.0.0.1. Additionally, users need to specify the variable's identifier on server, which is similar to the key
used in shmget
. It is required in order to locate variable after program's termination.
[$x =] tie(%HASH, 'Tie::RemoteVar', id => 'meatball');
[$x =] tie(@ARRAY, 'Tie::RemoteVar',
addr => '127.0.0.1', port => 1234, id => 'spaghetti');
[$x =] tie($SCALAR, 'Tie::RemoteVar',
port => 1234, id => 'YangZhou ChaoFan');
untie $SCALAR;
untie @ARRAY;
untie %HASH;
Since variables must be preserved after termination of scripts, users cannot use untie or undef to destroy variables. Instead, Tie::RemoteVar provides erase to perform this task.
$x->erase();
It will erase the variable stored on the server.
CAVEATS
Tie-filehandle is not supported.
Cannot handle variables of complex structure.
TO DO
Recursive copy of Perl datatypes.
COPYRIGHT
xern <xern@cpan.org>
This module is free software; you can redistribute it or modify it under the same terms as Perl itself.