問題タブ [mason]

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.

0 投票する
2 に答える
1417 参照

html - perl : HTML::Mason - HTML タグ内の perl ハッシュを表形式で出力します

ハッシュの値に関する HTML メール (レポート) を送信しようとしています。しかし、ハッシュ値を表形式で出力できませんでした。私はHTML::Mason自分のperlコマンドを実行し(ハッシュをループして)、レポートの最後に出力するために使用しています。しかし、私の perl コードは実行されません。

0 投票する
1 に答える
295 参照

perl - Mason メソッドのスコープ - オーバーライド

Mason2を使用します。3 つのコンポーネントがあります。

内容の/tmp/index.mcあるもの:

これ$.Someは、 で定義されたメソッド/Base.mcです。

/tmp/Base.mcのみを含む

/tmp/indexプリントのご依頼:

Someメソッドを追加しました/tmp/Base.mc

/tmp/index再度要求すると、次のように出力されます。

Someラップされた再定義されたメソッドを尊重しました/tmp/Base.mc

質問は:

メイソンが上記のようにメソッドの再定義を許可する場合、 の目的は何<%override method>ですか? 何<%override Some>か違うの?(私がテストしたとき、同じように印刷されます)。

EDITおそらく、質問は次の perl コードに縮小できます。

どちらの場合も (たとえば、"plain" 再定義と "override" で再定義)、次のように表示されます。

したがって、唯一の違いは with で ? を呼び出す可能super()someですoverride。基本的な知識が欠けていたらすみません... ;(

0 投票する
1 に答える
143 参照

perl - Mason2 での複数のメソッドのオーバーライド

Mason2を使用して Web サイトを構築します。各ページは 3 つのフィルター (コンテンツによって呼び出されるメソッド) を呼び出す必要があります。

これらのフィルター (メソッド) の 3 つの異なる実装があります。これら 3 つのフィルタのデフォルト セットは、最上位/Base.mcコンポーネントで定義されています。

ここで、サイトの別の部分 (別のルート) について、

上記のフィルター/メソッドのデフォルト セットを使用する必要がありますが、別のルートでは、

filter1filter2filter3およびの別のセットを使用する必要があります

3 番目のセットを使用します。

メソッドは低レベルのコンポーネントで簡単に再定義できますが、(この質問) のようにそれを行うことは、DRY 原則を尊重しません。

同じことを繰り返す必要がある 3

質問は:

  • メソッドの 3 つの異なる実装を 1 回だけ記述する方法と、それらを一度に使用する方法

/set2.mi、のようなコンポーネントを作成しようとし/set3.miましたが、これらのフィルターメソッドをオーバーライドしようとし、必要に応じてそれを呼び出しまし/{c,d,e}/Base.mc

しかし、これは機能しません。

3 つの異なるメソッドの実装を記述し、必要な deeprr で一度に呼び出す方法はBase.mc? 出来ますか?

標準の perl では、おそらくrolesを使用するため、必要なパッケージでは次のようなものを使用します。

パッケージSet1Set2必要なメソッドの実装が含まれる場所、または動的読み込みの場合はrequire .... Mason2 で可能なようなことはありますか、それとも繰り返す必要があり%ovverrideますか?

これが理にかなっていることを願っています...そうでない場合は、コメントを追加してください。質問を更新してみます。

編集

たとえば、コードを短縮するために、3 つではなく 1 つのフィルターのみを使用します。

/Base.mc

/a/index.mcとして使用する場合

次のように出力されます。

今、別のものを持っていMyHeadます。

上記のコードを追加する/b/Base.mcと動作MyHeadし、/b/index.mc

再定義されたフィルターを呼び出し、必要なものを出力します

問題は、

  • などのように、他の N 個のBase.mcコンポーネントで上記のフィルター コードを繰り返したくありません。/c/Base.mc/d/Base.mc
  • フィルタを一度書き、それを他の多くのコンポーネントで「使用」して、デフォルトのものを「再定義」する方法。
0 投票する
0 に答える
707 参照

apache - ブラウザでプレーンテキストとして表示される mhtml

私はPerlとMasonにまったく慣れていません。ここでの私の質問が些細なことだと思われる場合は、ご容赦ください。

Mason フレームワークを使用して開発された Web サイトがあります。私の知る限りでは、Apache、Perl (ModPerl)、Mason、および MySQL のみを使用しています。ウェブサイトのコードを持っていて、ウェブサイトを Ubuntu ローカルホストで動作させようとしています。

これらは、私が最初から従った手順です。

  1. Apache、MySQL、Perl、ModPerl をインストール済み
  2. cpanm で HTML-Mason をインストール: cpanm HTML::Mason
  3. に次の行を追加しましたapache.conf

私はこのようにテストしています

という名前の単純な「Hello World」ファイルを作成test.mhtmlし、ディレクトリに配置しました/var/www/。このファイルをブラウザで開こうとすると、次のように表示されます。

ただ表示する代わりにHello World

他に構成を変更する必要はありますか?

0 投票する
1 に答える
47 参照

perl - 出力行が % 文字で始まる Mason 出力の生成

Masonを使用して、テンプレート (Web ではなく) からいくつかの出力を生成します。

出力行が文字で始まる Mason コンポーネントから出力を生成する必要があります%

%<space>Mason コンポーネントの行頭は perl コマンドとして実行されるため、現在は以下を使用しています。

$perc は%initセクションで次のように定義されています。my $perc = '%';

上記は機能しますが、多くの行ではひどい解決策です。

質問:一部の行の先頭に「%」文字が含まれている Mason 出力を生成することは可能ですか?

0 投票する
0 に答える
84 参照

perl - Mason コンポーネントを役割として使用する

新しい Mason 2 では、Moose メソッド修飾子 (around、augment、override など) が導入されているので、Moose ロールとして機能するコンポーネントを書き始められるようにしたいと考えています。

私が知る限り、そのままではサポートされていませんが、この機能を提供するために (おそらくプラグインを介して) Mason を拡張しようとした人はいますか? 一般的に、それには何が必要で、Mason がコンポーネントをレンダリングする方法を考えると、それは可能なのでしょうか?

編集:を使用して「偽造」しようと$m->visit('other component')しましたが、少なくとも他のコンポーネントのメソッドをロードしているように見えますが、メソッド修飾子は次のように失敗するようです:...not found in the inheritance hierarchy

0 投票する
1 に答える
805 参照

perl - Perl Mason 構文の検証

コマンドラインで perl mason 構文を検証する方法はありますか? 通常の perl モジュールでは を使用できることはわかっていますがperl -c、docstring などのメイソン固有の構文でエラーがスローされます...

例えば:

は有効な perl mason ファイルですが、それperl -cに対して実行すると以下が返されます。

0 投票する
0 に答える
116 参照

perl - リロード時だけでなく、ロード時の ETag

Perl/Mason で追跡するために画像に ETag を設定しようとしています。

最初に作成された etag.m:

これを別のファイル test_etag.m で使用しています。

キャッシュをクリアした後の test_etag.m の最初の呼び出しで、警告が表示されます。etag は空です。次の呼び出しごとに、警告が表示されないため、画像がキャッシュされていると思います。リロード F5 を実行した場合にのみ、正しい ETag が検出され、警告に表示されます。

リロード時だけでなく、すべてのロードで初めて設定された ETag を取得するにはどうすればよいですか?

0 投票する
1 に答える
249 参照

mason - POET のグローバル変数 mason2

私は Mason2/POET を初めて使用し、このガイドhttp://search.cpan.org/~jswartz/Poet/lib/Poet/Manual/Tutorial.podを使用して最初の Web サイトを作成しました。

ここで、新しいグローバル変数 (例: $User) を作成したいと思いますが、ドキュメントで説明されていないため、作成するためにどのような方向に進むべきかわかりません。私が見つけたほとんどのドキュメントは、Apache または mod_perl に関するものでした...

私が探しているものの例:

0 投票する
1 に答える
212 参照

perl - 値からの perl ループのマップ

次のコードが機能しない理由を理解できません。

getAll引数、ボックス、およびを呼び出しています(1..10)。11 を返していますが、期待される動作は 10 要素を返すはずです。