問題タブ [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
次のエラーが表示されます。
blib/lib/Storable.pm (blib/lib/auto/Storable/thaw.al に自動分割) 415 行目 (v2.7) よりも新しい保存可能なバイナリ イメージ v36.65
エラーは、thaw
. はnfreeze
ハッシュを適切に保存しませんでした。
createOrder
サブルーチンで間違っていることを教えてもらえますか?
モジュールのバージョンが問題とは何の関係もないことはわかっています。
perl - Apache::Session と CODE 参照を使用して Moose オブジェクトを格納する代替手段
Apache::Session::File を使用して保存したい Moose クラスがあります。
ただし、デフォルトではApache::Session::Fileはそれを保存せず、代わりにエラーメッセージが表示されます:
この問題は、次のように設定することで回避できます。
CODE 参照をシリアライズできるようにするため。
Moose クラスの問題のあるメソッドを以下に示します。これは、mysql データベースから列を取得します。
したがって、おそらく dbh オブジェクト (DBIx::Connector など) には CODE 参照が含まれています。
$Storable::Deparse と $Storable::Eval を設定するよりも、この Moose クラスのシリアル化を許可するためのより良い代替手段はありますか?
次のテスト スクリプトでは、エラーが発生します。
SQL 接続クラスは次のように定義されます。
TestCell クラスは次のように定義されます。
perl - Storable.pm - 切り捨てられていないファイルに保存すると破損する
私の実稼働環境では、Storable.pm によって作成された、破損した保存可能なハッシュと思われるものがありました。Dev で動作を再現することができないため、正確な診断が難しくなっています。
コードは長い間機能しており、壊れた変更はハッシュからの削除でした。最近まで、ハッシュは同じサイズのままか、または大きくなりました。
ファイルは readwrite で開かれ、次に store_fd がファイルに書き込みます。ハッシュが (場合によっては) 小さくなるため、この 2000 バイトのファイルに 1000 バイトが書き込まれます。末尾の 1000 バイトは古いゴミ データです。私のテスト ケースでは、ハッシュを取得すると、期待どおり、ガベージ データは無視されます。
私の質問:
- これは機能するはずですか、それともファイルを切り捨てることが不可欠ですか?
- 保存されたハッシュは、ある種のファイル ターミネータ文字を使用していますか? もしそうなら、それは何ですか?
- 上記のコード、削除と追加、および削除と追加は、私のテストケースで完全に機能します。切り捨てられていないファイルが原因で失敗する可能性のあるテスト ケース シーケンスを提案できますか? (これは非常に漠然とした質問であることはわかっているので、無視してかまいません)。
perl - Storableのデフォルトのファイル権限を変更するにはどうすればよいですか?
Storablestore
から関数を使用するときに、どういうわけかデフォルトのファイル権限を変更できますか?
perl - オブジェクトとLog4perlのディープクローン作成
Storableを使用してdclone()
、さまざまな複雑なオブジェクトのコピーを作成しています。これらのオブジェクトは、Log4perlロガーが接続された状態で自己ロギングします。Storableは、参照を含んでいるため、ロガーオブジェクトに遭遇すると文句を言いますCODE
。コード参照をシリアル化するオプションをオンにすると、不吉な警告が表示されます
クローン作成プロセス中に、クローン作成されたオブジェクトのロガーが機能しなくなります。
私が複製しているオブジェクトは他のオブジェクトで構成されており、ロガーはオブジェクト、そのコンポーネント、それらのサブコンポーネントなどにアタッチされている可能性があります。
理想的には、クローン作成プロセスでロガーオブジェクトを無視するようにします。
1)このタスクに(もっと)適しているPerlモジュールはありますか?理想的には、再帰コピーを制御して、ロガーではないオブジェクトまたはデータの一部のみがコピーされるようにしたいと思います。
2)...または、オブジェクトのセルフロギング機能(sob!)をオブジェクトから取り出して、オブジェクトに接続されていないロガーを作成する方がよいでしょうか?
アドバイスや洞察をいただければ幸いです。
perl - PDL を属性として持つ Moose オブジェクトを保存する
私は Moose を初めて使用し、PDL をプロパティとして使用して問題が発生するまでは非常にうまくやっています。オブジェクトをファイルに書き込めるようにしたい (私は を使用しておりuse MooseX::Storage; with Storage('io' => 'StorableFile');
、このオブジェクトはPDL
属性として を持っています。この方法でPDL::IO::Storable
使用するために必要なメソッドを提供しますがStorable
、これを行う方法がわかりませんムース。
これは例です。少し長いことはわかっていますが、できる限り最小限に抑えています。
PDL 型を作成するか、PDL を何かにラップする必要があるかもしれませんが (を使用してMooseX::NonMoose::InsideOut
)、おそらく誰かがそれから私を救うことができます (または、正しい道があればそれを教えてくれます)。
perl - Storable モジュールは何に使用されますか?
私は何をするのか理解するのに苦労してStorable
います。
変数をディスクに「保存」することは知っていますが、なぜそれを行う必要があるのでしょうか? このモジュールを何に使用し、どのように使用しますか?