フォーマット機構に対する低レベルのアクセスのため、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.