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