Provided by: rex_1.14.3-1_all
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 block use 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"; };