=encoding utf-8

=head1 名前

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

=head1 概要

I<自動> での実行が推奨されます。

=head2 自動的に実行されている

インスタンス化されたオブジェクト B<$epl> が渡されます。
それは B<Apache::RequestRec>I<(modperl)> か B<__PACKAGE__>I<(cgi)> のリファレンスです。
コードタグ内で使う例。

  # 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');

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

  $htm = 何か;

  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;

=head1 説明

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

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

=head2 modperl2

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

  <FilesMatch ".*\.phtml?$">
  SetHandler perl-script
  PerlResponseHandler HTML::EmbeddedPerl
  PerlOptions +ParseHeaders
  </FilesMatch>

たぶん PerlResponceHandler I<modperl> にも対応します。

=head2 cgi

最初の行へ挿入します。

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

=head2 ラッパー

tweplを使うことができませんか？ しかし wrapper.pl を利用することができます。

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

=head1 タイムアウト

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

  # 初期設定は "2" 秒です
  $TIMEOUT = 2;

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

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

=head2 modperl2

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

=head2 cgi

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

=head2 ラッパー

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

  $HTML::EmbeddedPerl::TIMEOUT = X;

=head1 予約済み

これは単純に B<cgi>-B<modperl> 間の互換性を解決しています。

=head2 サブルーチン

ベース。

  ep
  handler
  new

CGIでの利用のために。
他のサブルーチンの定義は自由です。

  header_out
  content_type
  print
  flush

modperl下の実行においては B<Apache::RequestRec> 等に依存します。

=head2 変数

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

=head1 β機能

非コードブロックでの変数の置き換え。

=head1 作者

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

=head1 ライセンス

Copyright (c) 2010 Twinkle Computing All rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

=cut
