如何在 Perl 中序列化数组引用数组?

2024-05-01

Perl 有很多用于序列化数据的模块,我不知道该选择哪一个。

我需要将以下数据序列化为字符串,以便将其放入数据库中:

my @categories = (
    ["Education", "Higher Education", "Colleges"],
    ["Schooling", "Colleges"]
);

如何将其转换为文本,然后在需要时再转换回数组引用数组?


我投票支持 JSON(或Data::Serializer正如另一个答案中提到的,结合JSON).

The JSON模块非常快速和高效(如果您从 cpan 安装 JSON::XS,它将为您编译 C 版本,并且use JSON将自动使用它)。

它与 Perl 数据结构配合得很好,是标准化的,并且 Javascript 语法与 Perl 语法非常相似。您可以使用以下选项设置JSON提高人类可读性的模块(换行符等)

我也用过Storable。我不喜欢它——界面很奇怪,输出毫无意义,而且它是一种专有格式。Data::Dumper速度快且可读性强,但实际上是单向的(eval荷兰国际集团(它有点hackish),而且,它只是Perl。我也推出了自己的。最后,我得出的结论是 JSON 是最好的,快速、灵活且健壮。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Perl 中序列化数组引用数组? 的相关文章

随机推荐

  • 重载“+”的不可变列表有意义吗?

    它当然没有脱离 NET框架的标准实践 当我看到一个a b我总是假设会有新的东西被创造出来 static void Main string args var list BuildList ImmutableList
  • time_t 最终的 typedef 是什么?

    我搜索了我的 Linux 机器并看到了这个 typedef typedef time t time t 但我找不到 time t定义 The 文章对此进行了一些阐述 底线是类型time tC 规范中不保证 The time tdatatyp
  • 验证日期 - Bean 验证注释 - 使用特定格式

    我想验证日期格式YYYY MM DD hh mm ss Past validates for a date that is present or past But what are the formats it accepts 如果那不可能
  • org.hibernate.AssertionFailure

    我的线程执行时有时会遇到这个奇怪的错误 这可能与什么有关 2011 Jun 25 09 05 22 339 ERROR AssertionFailure 45 an assertion failure occured this may in
  • 使用部分形状通过 Typescript 进行单元测试

    假设我想在打字稿中对一个函数进行单元测试 该函数使用具有复杂形状的 选项 类型 对象 参数 interface option param1 string param2 number param3 param4 string param5 b
  • 如何将所有批量数据加载到 Keras(Theano 后端)的 GPU 内存中?

    Keras将数据批量加载到GPU上 作者注here https github com fchollet keras issues 249 对于小型数据集 这是非常低效的 有没有办法修改 Keras 或直接调用 Theano 函数 在 Ker
  • 禁用 Android Studio 警告:“访问可以...”

    更新 Android Studio 后 我收到以下字段的警告 public int ex1 0 int ex2 0 或方法或嵌套类 当它们仅在一个类或包中使用时 访问可以是私有的 或 访问可以是仅限包的 这是可以的 我不想要这些警告 但我找
  • 如何遍历 Shadow DOM 中的元素

    I have div id outer shadowRoot div id inner button 在按钮的单击处理程序中 我想引用 div 内部 在非 ShadowDom 世界中 这将是document getElementById i
  • Windows Azure 网站上运行的是哪个版本的 node.js?

    Windows Azure 网站上实际运行的是哪个版本的 node js Windows Azure 网站服务器上预安装了许多版本的节点 您可以通过在 package json 文件中指定所需的最低版本来选择使用哪一个版本 指示here h
  • 如果物理内存的大小是2^32-1,那么虚拟内存的大小是多少?

    我知道物理地址是 32 位长 但是如何通过这些信息找出虚拟内存的大小 虚拟内存地址空间的总大小为2 32x86架构和更大 目前约为 2 48 x64建筑学 然而 操作系统通常会保留一部分空间 因此 32 位应用程序不一定能一次寻址 4GB
  • 在 OSX 和 PHP 版本 5.5.3 中使用 MAMP 时,php 编辑不会立即显示

    更改php文件并刷新浏览器后 更改不会立即显示 而是在15秒后刷新显示更改 但是 PHP 版本 5 2 17 的更改会立即显示 但 PHP 版本 5 5 3 不会立即显示 phpinfo 报告 php 版本 5 2 17 的 HTTP 响应
  • 指定的 deps.json '$$$' 不存在

    我对 NET Core 相当陌生 我有一个 NET Core WebAPI 项目 MyWebApp 另外 我有使用 EntityFrameworkCore 的 Net Core 类库项目 MyLib 当我尝试使用添加迁移时 出现错误指定的
  • Android IAB:设备上无法使用计费服务

    我正在尝试在我的应用程序中实现 IAB 每次应用程序启动时 启动都会失败并显示 Problem setting up In app Billing IabResult Billing service unavailable on devic
  • Heroku - 将单个表转储并加载到共享 postgres 数据库

    我想知道是否有一种简单的方法可以将一个表的内容转储或加载到heroku共享数据库 postgres Heroku 推荐了 pgbackups 插件 但根据文档它支持转储和加载整个数据库 我需要的只是转储 加载单个表 您可以使用水龙头 htt
  • Mysqldb 属性错误:游标

    我开始在 python 中使用 mysqldb 模块 并且我似乎对调用查询的 标准 方式有一些问题 我知道标准方法是创建游标 然后用它来执行查询 然而 当我尝试实例化一个时 它给了我以下错误 属性错误 光标 我的数据库类如下所示 class
  • Java:通过 UserObject 字段递归搜索 TreeModel?

    我有一个使用 DefaultTreeModel 的 Jtree 每个单独的节点都包含一个包含各种字符串字段的 UserObject 我想通过递归遍历来查找并选择一个节点 直到找到 UserObject 与其字段之一匹配的 DefaultMu
  • 如何在bootstrap中使用垂直对齐

    简单的问题 如何使用 bootstrap 在一个列内垂直对齐一个列 这里的例子 我想垂直对齐child1a和child1b http bootply com 73666 http bootply com 73666 HTML div cla
  • GDB/bin/bash 无法在 Eclipse CDT 中执行应用程序?

    在 Mac OS X Mojave 上使用 Eclipse CDT 运行 GDB 时遇到困难 当我尝试调试项目时 GDB 表现得很混乱 我能够调试几次 但随后它在下一个调试会话开始时开始停止 并显示消息 配置 GDB 可执行文件是 User
  • 将数据持久保存在 Oracle 数据库的 docker 卷中

    我创建了用于存储我的应用程序数据库数据的卷 docker volume create dbvolume 然后我启动了带有 Oracle XE 11g 数据库映像和数据卷的 docker 容器 docker run name OracleXE
  • 如何在 Perl 中序列化数组引用数组?

    Perl 有很多用于序列化数据的模块 我不知道该选择哪一个 我需要将以下数据序列化为字符串 以便将其放入数据库中 my categories Education Higher Education Colleges Schooling Col