Go to the first, previous, next, last section, table of contents.


内部のフォーマット動作へのアクセス

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

のようにします。

WARNING

format の実行中には、グローバルな変数と local() で宣言され た動的スコープの変数だけが見えます。my() で宣言された字句スコープ の変数は、format と同じスコープにあるとはみなされず、使用すること ができません。


Go to the first, previous, next, last section, table of contents.

検索式: