問題タブ [moose]
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.
perl - MooseX::AttributeHelpersとMooseX::FollowPBPは正しく相互作用しますか?
次のコードは、 MooseX :: AttributeHelpersに付属する機能を使用するかどうかのみが異なる2つのクラス(DeckA
および)を定義します。Mooseによって生成されたゲッターは私が期待したものではありません。これはバグですか、それともMooseX::AttributeHelpersとMooseX::FollowPBPがどのように相互作用するべきか誤解していますか?DeckB
DeckB
今のところ私の回避策はis
、そのような状況で引数を使用することを避け、代わりに必要に応じてreader
とを宣言することwriter
でした。
出力:
perl - Mooseでデフォルトのトリガーされたアクセサーを作成するにはどうすればよいですか?
後で使用するためにいくつかの計算をキャッシュしたい状況があります。許可された値のリストがあるとしましょう。そのリストに何かが含まれているかどうかを確認するので、効率と利便性のためにハッシュとして使用したいと思います。そうでなければ、grepする必要があります。
Mooseを使用している場合は、許可される値のリストが変更されるたびにキャッシュが再計算されると便利です。私はそれをトリガーで簡単に行うことができます...
そして、2つは同期を維持します...
ここで、デフォルトの、十分に単純な変更が必要だとしましょうallowed_values
...
...デフォルトを設定することを除いて、トリガーは呼び出されません。DWIMに到達するには、キャッシュを複製する必要があります。
Mooseのドキュメントは、デフォルトが設定されているときに呼び出されないことを明示してtrigger
いますが、邪魔になります。私はそこでの複製が好きではありません。
それを行うためのより良い方法はありますか?
mysql - MySQL::Slurp に必要な依存関係をインストールするにはどうすればよいですか?
MySQL::Slurpにある mysqlslurp ユーティリティをインストールしようとしています。
Mooseが必要であることがわかったので、そのパッケージもインストールしました。
しかし、私はまだmysqlslurp
コマンドを使用できません。エラーが発生します:
perl - MooseX::NonMoose クラスのミックスインの問題
次の点を考慮してください。
これをコンパイルしたときの出力は次のとおりです。
なぜ私は気にするのですか?use
CGI::Application::Plugin::* クラスを実行しようとするとCGI::Application
、コンパイル時にすでに継承していると想定されるためです。add_callback
プラグイン クラスは、私のクラスのクラス メソッドとして呼び出そうとしますが、@ISA
まだ設定されていないためできません。
これを解決する最善の方法は何ですか? @ISA
ブロックを手動で微調整BEGIN
すると干渉しMooseX::NonMoose
ますか?
編集
以下は機能しているように見えますが、不快だと思います。
これが良いアイデアかどうかを知るには、Moose の内部構造について十分に (または実際には何も) 知りません。
perl - Moose の自動プラグマ エクスポートを拡張するにはどうすればよいですか?
インポート中にMooseが自動的にオンになる仕組みを知っていますstrict
か? Moose クラスをwarnings
オンにして、その動作を拡張したいと考えていautodie
ます。use feature ':5.10'
Moose::Exporter
Mooseimport
がこれstrict->import
をどこで行っているかを追跡しましたwarnings->import
。
ただし、このインポート メソッドを Moose 風に拡張する方法がわかりません。
これをどのように処理すればよいですか?
perl - Perl Mooseメソッド修飾子:「前」と「後」の前に「周り」を呼び出す
私はMooseを使用しており、プロジェクトでメソッド呼び出しをラップする必要があります。私のラッピングコードが最も外側の修飾子であることが重要です。これまでに行ったことは、メソッド修飾子をMooseロールに配置し、次のようにクラスの最後にそのロールを適用することです。
これにより、自分のロールの修飾子が最後に定義されていることを合理的に確認できるため、「前」と「後」の正しい動作が得られます。(役割の「前」と「後」は、最初と最後と呼ばれます。)
もともとはこれで十分だと思っていましたが、今は「アラウンド」と同じようにメソッドをラップする必要があります。Mooseが構築されているClass::MOPは、最初に「around」修飾子を適用するため、「before」の後と「after」の前に呼び出されます。
詳細については、修飾子の現在の呼び出し順序を次に示します。
私は本当にこのようなものが必要です:
「around」修飾子を適用/呼び出したい場所に配置する方法についてのアイデアはありますか?シンボルテーブルのハッキングを実行できることは知っていますが(Class :: MOPがすでに実行しているように)、実際には実行したくありません。
perl - 「最新の」Perl を始めるためのリソース
Moose、DeclareX、Catalyst など、Perl エコシステムの新しい部分について聞いた後、Perl を見てみるのはいいことだと思いました。~~
残念ながら、私が見つけることができる入門資料はすべて Perl 5.8 または 5.6 を対象としており、これらの新しいフレームワークについては何も知りません。演算子などの最近の Perl バージョンで導入された機能は言うまでもありません。新たに Perl に興味を持ち、最初から物事を行うための現在のベスト プラクティスの方法を学びたいと考えている人は、どのようなリソースを利用できますか?
キャメルブックの第 3 版を読んでから、山積みの CPAN ドキュメントなどを読み進めることができますが、非推奨の方法をたくさん学ぶ必要のないチュートリアルを非常に高く評価しています。リファレンスマニュアルを読んだときに、振り返ってそれらを再び忘れるためです。十分に文書化され、Perl のこれらの新しいコーナーのいくつかを使用する実際のコードも素晴らしいでしょう。
perl - PerlとMooseで不変オブジェクトの循環グラフを作成するにはどうすればよいですか?
これは明らかに絶望的なケースのように思えるかもしれませんが、Perlで不変オブジェクトの循環グラフを作成するためのトリックはありますか?このようなもの:
$a->child
今、私が指摘したい場合、私は$b
何ができますか?
perl - Moose: 属性値が変更されると、キャッシュされた計算結果が期限切れになりますか?
私たちのクラスには、計算された値を表す属性を作成するパターンがあります。明らかな理由から、計算された値をキャッシュし、基になる値の 1 つが変更されたときにキャッシュを無効にしたいと考えています。
したがって、現在これがあります:
計算された値が他の計算された値に依存する場合、この長時間の方法は非常に面倒でエラーが発生しやすくなります。
「バー」が依存する属性を監視するためのよりスマートでシンプルな方法と、「foo」が依存している人を知る方法はありますか? また、ハッシュメンバーアクセスを介してバーを設定しないようにするにはどうすればよいですか?