問題タブ [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.
javascript - Perl の文字列から開始タグと終了タグを削除する
私はこのような文字列を持っています:
私の要件は、文字列からスクリプトの開始タグと終了タグを削除することです。文字列の間に他のタグが含まれている場合、それらは削除しないでください。
Perl でこれを行うにはどうすればよいですか?
html - perl : HTML::Mason - HTML タグ内の perl ハッシュを表形式で出力します
ハッシュの値に関する HTML メール (レポート) を送信しようとしています。しかし、ハッシュ値を表形式で出力できませんでした。私はHTML::Mason自分のperlコマンドを実行し(ハッシュをループして)、レポートの最後に出力するために使用しています。しかし、私の perl コードは実行されません。
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。基本的な知識が欠けていたらすみません... ;(
perl - Mason2 での複数のメソッドのオーバーライド
Mason2を使用して Web サイトを構築します。各ページは 3 つのフィルター (コンテンツによって呼び出されるメソッド) を呼び出す必要があります。
これらのフィルター (メソッド) の 3 つの異なる実装があります。これら 3 つのフィルタのデフォルト セットは、最上位/Base.mcコンポーネントで定義されています。
ここで、サイトの別の部分 (別のルート) について、
上記のフィルター/メソッドのデフォルト セットを使用する必要がありますが、別のルートでは、
filter1、filter2、filter3およびの別のセットを使用する必要があります
3 番目のセットを使用します。
メソッドは低レベルのコンポーネントで簡単に再定義できますが、(この質問) のようにそれを行うことは、DRY 原則を尊重しません。
同じことを繰り返す必要がある 3
質問は:
- メソッドの 3 つの異なる実装を 1 回だけ記述する方法と、それらを一度に使用する方法
/set2.mi、のようなコンポーネントを作成しようとし/set3.miましたが、これらのフィルターメソッドをオーバーライドしようとし、必要に応じてそれを呼び出しまし/{c,d,e}/Base.mcた
しかし、これは機能しません。
3 つの異なるメソッドの実装を記述し、必要な deeprr で一度に呼び出す方法はBase.mc? 出来ますか?
標準の perl では、おそらくrolesを使用するため、必要なパッケージでは次のようなものを使用します。
パッケージSet1とSet2必要なメソッドの実装が含まれる場所、または動的読み込みの場合は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 - フィルタを一度書き、それを他の多くのコンポーネントで「使用」して、デフォルトのものを「再定義」する方法。
apache - ブラウザでプレーンテキストとして表示される mhtml
私はPerlとMasonにまったく慣れていません。ここでの私の質問が些細なことだと思われる場合は、ご容赦ください。
Mason フレームワークを使用して開発された Web サイトがあります。私の知る限りでは、Apache、Perl (ModPerl)、Mason、および MySQL のみを使用しています。ウェブサイトのコードを持っていて、ウェブサイトを Ubuntu ローカルホストで動作させようとしています。
これらは、私が最初から従った手順です。
- Apache、MySQL、Perl、ModPerl をインストール済み
- cpanm で HTML-Mason をインストール: cpanm HTML::Mason
- に次の行を追加しました
apache.conf
私はこのようにテストしています
という名前の単純な「Hello World」ファイルを作成test.mhtmlし、ディレクトリに配置しました/var/www/。このファイルをブラウザで開こうとすると、次のように表示されます。
ただ表示する代わりにHello World
他に構成を変更する必要はありますか?
perl - 出力行が % 文字で始まる Mason 出力の生成
Masonを使用して、テンプレート (Web ではなく) からいくつかの出力を生成します。
出力行が文字で始まる Mason コンポーネントから出力を生成する必要があります%。
%<space>Mason コンポーネントの行頭は perl コマンドとして実行されるため、現在は以下を使用しています。
$perc は%initセクションで次のように定義されています。my $perc = '%';
上記は機能しますが、多くの行ではひどい解決策です。
質問:一部の行の先頭に「%」文字が含まれている Mason 出力を生成することは可能ですか?
perl - Mason コンポーネントを役割として使用する
新しい Mason 2 では、Moose メソッド修飾子 (around、augment、override など) が導入されているので、Moose ロールとして機能するコンポーネントを書き始められるようにしたいと考えています。
私が知る限り、そのままではサポートされていませんが、この機能を提供するために (おそらくプラグインを介して) Mason を拡張しようとした人はいますか? 一般的に、それには何が必要で、Mason がコンポーネントをレンダリングする方法を考えると、それは可能なのでしょうか?
編集:を使用して「偽造」しようと$m->visit('other component')しましたが、少なくとも他のコンポーネントのメソッドをロードしているように見えますが、メソッド修飾子は次のように失敗するようです:...not found in the inheritance hierarchy
perl - Perl Mason 構文の検証
コマンドラインで perl mason 構文を検証する方法はありますか? 通常の perl モジュールでは を使用できることはわかっていますがperl -c、docstring などのメイソン固有の構文でエラーがスローされます...
例えば:
は有効な perl mason ファイルですが、それperl -cに対して実行すると以下が返されます。