フォーマット機構に対する低レベルのアクセスのため、formline()
を使
い、$^A
($ACCUMULATOR
) を直接アクセスすることができます。
たとえば、
$str = formline <<'END', 1,2,3; @<<< @||| @>>> END print "Wow, I just stored `$^A' in the accumulator!\n";
もしくは、printf()
に対する sprintf()
のような
write()
に対するサブルーティン swrite()
を作るため:
use English; use Carp; sub swrite { croak "usage: swrite PICTURE ARGS" unless @ARG; local($ACCUMULATOR); formline(@ARG); return $ACCUMULATOR; } $string = swrite(<<'END', 1, 2, 3); Check me out @<<< @||| @>>> END print $string;
のようにします。
format
の実行中には、グローバルな変数と local()
で宣言され
た動的スコープの変数だけが見えます。my()
で宣言された字句スコープ
の変数は、format
と同じスコープにあるとはみなされず、使用すること
ができません。
Go to the first, previous, next, last section, table of contents.