NAME

XS::Base - C/XS 实现的高效 JSON-like 缓存(支持可配置 strict_mode、并发读写锁)

SYNOPSIS

use XS::Base qw(has del def clr);
my ($key,$value);
$key = "a";
$value = 5;
has $key=>$value;
def $key=>10;

$key = "a->b";
$value = {"c"=>6};
has $key=>$value;
$value = has("a");
$value = has("a->b");
$value = has("a->b->c");

clr();

DESCRIPTION

XS::Base是进程内(包括线程之间)高效快速的数据共享,支持scalar,array和hash, 也支持主程序和use package之间的全局数据共享。 可以避免大量的全局变量使用,也解决主程序和package之间的数据传递的问题。

函数说明

has函数

该函数用于设置缓存/获取缓存参数。

参数key

参数key是存储数据的路径,路径支持多级hash

my $key = "key1->key2->key3";    # 表示多级hash,$hash->{key1}->{key2}->{key3}
参数value

参数value是存储的数据,可以是scalar,array或者hash

del函数

use XS::Base qw(:all);
my ($key,$def_value);
del $key=>$def_value;

该函数用于设置设置缓存数据的默认值,如果数据已经存在,则不覆盖(不设置)。

del函数

use XS::Base qw(:all);
del($key);

该函数用于删除节点

clr函数

该函数用于清空所有数据

静态变量strict_mode 默认:1

严格模式

当 strict_mode == 1(严格)且在遍历中发现中间节点存在且不是 hashref,则 croak(不覆盖)。

宽松模式

当 strict_mode == 0(宽松)且发现中间节点存在但不是 hashref,则覆盖该中间节点

3 POD Errors

The following errors were encountered while parsing the POD:

Around line 91:

'=item' outside of any '=over'

Around line 101:

You forgot a '=back' before '=head2'

Around line 122:

'=item' outside of any '=over'

=over without closing =back