[英]Sharing data structures between perl and cpp
我有一个perl脚本,它会生成一个非常大的数据结构(它开始时是数组引用的数组)。 然后使用一些奇怪的自制序列化方案将其写入文本文件。
来自文本文件的数据作为值存储在键值存储db中。
然后,一个c ++文件检索该数据,并将其反序列化(生成一个哈希表,尽管可以灵活地构造该数据)。
我感兴趣的是,找到是否有在perl和c ++之间共享数据结构的好方法(类似于Storable ,但这是为了perl-> perl而不是perl-> c ++)。 当前的方法令人头疼,并且可能无法获得最佳性能。
最重要的因素是反序列化的速度以及该序列化结构的大小。 有人知道可以解决这个问题的方法吗?
Storable
是转储和加载perl数据结构的一种方法。 不过,我实际上并不推荐将其用于一般用途-方便使用,因为它是核心且易于使用。
但是对于多平台(和语言)的可移植性,使用标准数据表示要好得多。 您选择哪个可能与您在结构中保存的数据类型有关,但是核心竞争者是:
作为标准,它们具有记录的格式,并且解析器广泛可用。 如果那是您要走的路,那么实现自己的目标并不难。 只需确保您遵循规范并保持良好状态即可。
注意-因为XML和JSON(我认为是YAML?)是递归的,所以可以将其解析为流,而不是独立的对象。 (当您点击JSON中的“右括号”或XML中的“关闭标签”时,请进行捕获,处理和丢弃)。
简单的工作。
我喜欢perl,我也喜欢C / C ++。 为了充分利用两者,我编写了一个github项目来解决此问题。
请参阅: https : //github.com/tlqtangok/perlcpp
一个简短的例子在这里:
P_eval("$a=2;$a=$a**10;");
Int("a") ; // a= 1024
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.