NAME
Rex::Shared::Var - Share variables across Rex tasks
DESCRIPTION
Share variables across Rex tasks with the help of Storable, using a "vars.db.$PID" file in the local directory, where $PID is the PID of the parent process.
SYNOPSIS
BEGIN { # put share in a BEGIN blockuse Rex::Shared::Var;share qw($scalar @array %hash); # share the listed variables}
LIMITATIONS
Currently nesting data structures works only if the assignment is made on the top level of the structure, or when the nested structures are also shared variables. For example:
BEGIN {use Rex::Shared::Var;share qw(%hash %nested);}# this doesn't work as expected$hash{key} = { nested_key => 42 };$hash{key}->{nested_key} = -1; # $hash{key}->{nested_key} still returns 42# workaround 1 - top level assignments$hash{key} = { nested_key => 42 };$hash{key} = { nested_key => -1 };# workaround 2 - nesting shared variables$nested{nested_key} = 42;$hash{key} = \%nested;$hash{key}->{nested_key} = -1;
METHODS
share
Share the passed list of variables across Rex tasks. Should be used in a "BEGIN" block.
BEGIN {use Rex::Shared::Var;share qw($error_count);}task 'count', sub {$error_count += run 'wc -l /var/log/syslog';};after_task_finished 'count', sub {say "Total number of errors: $error_count";};