Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/motemen/script-state

Keep script local variables
https://github.com/motemen/script-state

Last synced: 3 days ago
JSON representation

Keep script local variables

Awesome Lists containing this project

README

        

# NAME

Script::State - Keep script local variables

# SYNOPSIS

#!perl
use Script::State;

script_state my $count = 0; # set to last value if exists
say $count++;

# automatically write $count's current value to external file
# to be read at next script execution

# FUNCTIONS/METHODS

- script_state my $variable = $default;

Keep this variable's state after script execution.

- Script::State->store;

Explicitly store current state. This is called in END block.

# DESCRIPTION

Script::State stores local variables to file after script execution.
Values of scalar variables with `script_state` are stored in another file,
and the values are automatically loaded when script is executed at next time.

# HOW THIS WORKS

Script::State stores variable states to file at same directory of script ($0).
For example, if $0 eq 'foo/bar.pl', filename containing state is 'foo/.bar.pl.pl'.

When Script::State is import()ed, it will load previous state from the state file,
and at the time script_state() is called, bind corresponding value to the variable.

When Script::State's END block is entered, this stores current variable values
to the state file.

# CAVEATS

This modules currently uses Data::Dumper::Dump and eval() to store/load state, maybe unsafe.

This modules currently does not lock state files.

# AUTHOR

motemen

# LICENSE

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.