问题标签 [storable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PHP 脚本可以反序列化使用 Perl 创建的可存储文件吗?
PHP 脚本可以反序列化使用 Perl 创建的可存储文件吗?
perl - 如何使用 32 位 Perl 解冻使用 64 位 Storable 冻结的内容?
我正在尝试解冻在 64 位 Solaris(生产)机器上使用 Storable 冻结的数据库 BLOB。当我尝试在 32 位 Windows(开发)PC 上解冻时,我收到“字节顺序不兼容错误”。
确切的错误是:
SearchSendQueue.pm 的第 124 行:
有人知道我如何在 32 位机器上解冻这个对象吗?
注意:该对象有效并且在 64 位生产机器上工作。我已经尝试过“$Storable::interwork_56_64bit = 1;” 正如其他论坛所建议的那样。
perl - Storable 可以存储到 DATA 文件句柄吗?
我很好奇使用Storable的 store_fd 和 fd_retrieve 是否允许我将数据结构存储到程序自己的 DATA 文件句柄中。我意识到这不是最佳实践,我只是好奇它是否会起作用,我快速尝试它似乎不起作用。
perl - 在 Perl 中使用 Storable::nfreeze 在 DB 中存储哈希时出现问题
我想使用 Storable::nfreeze 在数据库中插入一个哈希,但数据没有正确插入。
我的代码如下:
工作正常,因为我用thaw
一些已正确插入的行对其进行了测试,但是当我尝试获取使用createOrder
子例程插入的行时,我收到一条错误消息:
可存储二进制映像 v36.65 比我 (v2.7) 更新,位于 blib/lib/Storable.pm(自动拆分为 blib/lib/auto/Storable/thaw.al)第 415 行
错误来自具有thaw
. nfreeze
没有正确存储哈希。
有人可以指出我在createOrder
子程序中做错了什么吗?
我知道模块版本与问题无关。
perl - 使用 Apache::Session 和 CODE 引用存储 Moose 对象的替代方法
我有一个想要使用 Apache::Session::File 存储的 Moose 类。
但是,默认情况下 Apache::Session::File 不会存储它,而是我收到错误消息:
这个问题可以通过设置来规避
为了允许 CODE 引用被序列化。
下面列出了 Moose 类中的违规方法,该方法从 mysql 数据库中检索列:
所以大概 dbh 对象(即 DBIx::Connector)包含 CODE 引用。
为了允许这个 Moose 类的序列化,是否有比设置 $Storable::Deparse 和 $Storable::Eval 更好的选择?
以下测试脚本产生错误:
SQL连接类定义为:
TestCell 类定义为:
perl - Storable.pm - 保存到非截断文件时损坏
在我的生产环境中,我们有一个我们认为是损坏的可存储哈希,由 Storable.pm 创建。我无法复制 Dev 中的行为,这使得准确诊断变得困难。
该代码已经运行了很长时间,导致它中断的更改是从哈希中删除。直到最近,哈希值要么保持不变,要么增长。
文件以读写方式打开,然后 store_fd 写入文件。由于哈希现在(有时)更小,它会向这个 2000 字节的文件写入 1000 字节。尾部 1000 字节是旧的垃圾数据。在我的测试用例中,当我检索哈希时,垃圾数据被忽略,正如预期的那样。
我的问题:
- 这应该有效,还是我必须截断文件?
- 存储的哈希是否使用某种文件终止符?如果是这样,它是什么?
- 上面的代码,删除和添加以及删除和添加,在我的测试用例中完美运行。您能否建议任何可能导致它失败的测试用例序列,由于未截断的文件?(我知道这是一个非常模糊的问题,所以请随意忽略它)。
perl - 如何更改 Storable 中的默认文件权限?
使用Storablestore
中的功能时,我可以以某种方式更改默认文件权限吗?
perl - 深度克隆对象和 Log4perl
我正在使用 Storabledclone()
创建各种复杂对象的副本,这些对象是带有附加 Log4perl 记录器的自我记录。Storable 在遇到 logger 对象时会报错,因为它包含CODE
refs。当我打开序列化代码引用的选项时,我收到不祥的警告
在克隆过程中,克隆对象的记录器不再起作用。
我正在克隆的对象由其他对象组成,记录器可能附加到对象、其组件、它们的子组件等。
理想情况下,我希望克隆过程忽略任何记录器对象。
1)是否有任何 Perl 模块(更)适合这项任务?理想情况下,我希望能够控制递归复制,以便只复制不是记录器的对象或数据片段。
2) ...或者我最好从我的对象中取出对象的自我记录功能(呜咽!)并创建不附加到对象的记录器?
任何建议或见解将不胜感激。
perl - 存储具有 PDL 作为属性的 Moose 对象
我是 Moose 的新手,在使用 PDL 作为属性遇到障碍之前做得很好。我希望能够将对象写入文件(我一直在使用use MooseX::Storage; with Storage('io' => 'StorableFile');
,并且该对象具有 aPDL
作为属性。PDL::IO::Storable
提供了以这种方式使用的必要方法Storable
,但是我不知道如何在驼鹿。
这是一个例子,它有点长,我知道,但它是尽可能少的:
我想我可能必须创建一个 PDL 类型,甚至可能将 PDL 包装到某些东西中(使用MooseX::NonMoose::InsideOut
),但也许有人可以将我从中拯救出来(或者如果是的话,可以为我指明正确的道路)。
perl - Storable 模块是做什么用的?
我很难理解是什么Storable
。
我知道它将一个变量“存储”到您的磁盘中,但我为什么需要这样做呢?我会用这个模块做什么,我会怎么做?