C++ 在perl和cpp之间共享数据结构
我有一个perl脚本,它生成一个非常大的数据结构(从数组引用数组开始)。然后使用某种奇怪的自制串行化方案将其写入文本文件 文本文件中的数据作为值存储在键值存储数据库中C++ 在perl和cpp之间共享数据结构,c++,perl,serialization,deserialization,C++,Perl,Serialization,Deserialization,我有一个perl脚本,它生成一个非常大的数据结构(从数组引用数组开始)。然后使用某种奇怪的自制串行化方案将其写入文本文件 文本文件中的数据作为值存储在键值存储数据库中 一个C++文件然后检索数据,并将其反序列化(HasMMAP,虽然在这个数据如何结构化方面可能是灵活的)。 我感兴趣的是,在Perl和C++之间是否有共享数据结构的好方法(类似于Perl—>Perl不为perl -> C++)。当前的方法维护起来很麻烦,可能没有最好的性能 最重要的因素是反序列化的速度,以及序列化结构的大小。有人知道
一个C++文件然后检索数据,并将其反序列化(HasMMAP,虽然在这个数据如何结构化方面可能是灵活的)。 我感兴趣的是,在Perl和C++之间是否有共享数据结构的好方法(类似于Perl—>Perl不为perl -> C++)。当前的方法维护起来很麻烦,可能没有最好的性能
最重要的因素是反序列化的速度,以及序列化结构的大小。有人知道有什么东西可以做到这一点吗?可存储的是转储和加载perl数据结构的一种方法。不过,我并不推荐它用于一般用途,因为它是核心的一部分,使用方便 但对于多平台(和语言)可移植性,使用标准数据表示要好得多。您选择哪一种可能与您在结构中保存的数据类型有关,但核心竞争者是:
- -适用于数组和散列(键值)李>
- -非常适合“配置文件”样式的数据(但扩展方式类似于JSON)
- 如果必须的话,-但请记住,XML是为带有元数据的文档设计的,因此IMO不适用于它所用于的大多数应用程序李>
注意——因为XML和JSON(我认为YAML?)是递归的,所以可以将其解析为流,而不是独立的对象。(当您点击JSON中的“close方括号”或XML中的“close标记”时,会捕获、处理和丢弃)
Storable
是转储和加载perl数据结构的一种方法。不过,我并不推荐它用于一般用途,因为它是核心的一部分,使用方便
但对于多平台(和语言)可移植性,使用标准数据表示要好得多。您选择哪一种可能与您在结构中保存的数据类型有关,但核心竞争者是:
- -适用于数组和散列(键值)李>
- -非常适合“配置文件”样式的数据(但扩展方式类似于JSON)
- 如果必须的话,-但请记住,XML是为带有元数据的文档设计的,因此IMO不适用于它所用于的大多数应用程序李>
P_eval("$a=2;$a=$a**10;");
Int("a") ; // a= 1024
简单的工作
我喜欢perl,也喜欢C/C++。为了充分利用两者,
我写了一个github项目来解决这个问题
请参阅:
下面是一个简短的例子:
P_eval("$a=2;$a=$a**10;");
Int("a") ; // a= 1024
那么JSON呢?或者我认为协议缓冲区没有对Perl的正式支持,所以我可能会忽略这一点。对于有类似问题的人来说,这是一个很好的口号,虽然两者都有CPAN模块,但Google和MessagePack都没有宣布它们是官方的。至少乍一看是这样。不过,我会尝试一下,然后比较性能和可用性。JSON呢?或者我认为协议缓冲区没有对Perl的正式支持,所以我可能会忽略这一点。对于有类似问题的人来说,这是一个很好的口号,虽然两者都有CPAN模块,但Google和MessagePack都没有宣布它们是官方的。至少乍一看是这样。但是,我会尝试一下,然后比较性能和可用性。为指针干杯,我可以走JSON ish路线,我想为指针干杯,我可以走JSON ish路线,我想