The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

名前

HTML::EmbeddedPerl - (主に)HTMLへのPerlコード埋め込み

概要

自動です

自動的に実行されている

インスタンス化されたオブジェクト $epl が渡される。 コードタグ内で使う例。

  # output header ($key,$value)
  $epl->header_out('Content-Type','text/html');
  # set of contents type, default is 'text/html', output forcing.
  $epl->content_type('text/html');

スクリプト内における使用

  $htm = I<何か>;

  use HTML::EmbeddedPerl;
  $e = HTML::EmbeddedPerl->new();

  # HTTPヘッダのセット (キー,値)
  $e->header_out('Content-Create','foo');
  # Content-Typeのセット、デフォルトは 'text/html'
  $e->content_type('text/plain');

  # HTTPヘッダとコンテンツの出力 (例:1)
  $e->ep(\$htm);

  # HTTPヘッダは出力されず、$rへコンテンツが返る
  $r = $e->ep(\$htm);

  # HTTPヘッダ出力
  $e->flush;
  # 上記と同じです (例:1)
  print $r;

説明

(主に)HTMLのためのPerlコード埋め込み、それは簡素で容易です。

<$ Perl-Code $> をHTMLへ追加します。 またコードブロックが多数あれば、コードブロック間で局所化された変数は使用できません。

mod_perl2

グローバル変数使いたくないのであれば $var を使用してください。 $var は実行後に破棄されます。 しかしそれは複数タグの間においても使用することができます。

  E<lt>FilesMatchE<quot>.*\.phtml?$E<quot>E<gt>
  SetHandler B<perl-script>
  PerlResponseHandler HTML::EmbeddedPerl
  PerlOptions +ParseHeaders
  E<lt>/FilesMatchE<gt>

コモン・ゲートウェイ・インターフェイス

最初の行へと挿入します。

  #!/あなたの/パス/twepl

ラッパー

tweplを使うことができない? しかし wrapper.pl を利用することができます。

  AddType application/x-embedded-perl .phtml
  AddHandler application/x-embedded-perl .phtml
  Action application/x-embedded-perl I</your/path/wrapper>

タイムアウト

ループ検知のためのタイムアウトを超えると強制終了します。 必要ならグローバル変数 $TIMEOUT を上書きして変更してください。

  # 初期設定は E<quot>2E<quot> 秒です
  $TIMEOUT = 2;

alarm の下で既に実行されて、そのタイムアウトの変更はできません。

  # 新規タイムアウトとして
  alarm($TIMEOUT);
  # タイムアウトを取り消す
  alarm(0);

mod_perl2

  $TIMEOUT = B<X>;
  # タイムアウトを取り消しタイムアウトを未設定とする
  alarm(($TIMEOUT=0));

コモン・ゲートウェイ・インターフェイス

  # 新規タイムアウトとして
  alarm(B<X>);

ラッパー

サブルーチン ep() を呼ぶ前に

  $HTML::EmbeddedPerl::TIMEOUT = B<X>;

予約済み変数

  $TIMEOUT(グローバル)
  $epl
  $var

著者

トゥインクル・コンピューティング <twinkle@cpan.org>