This is an internal function used by format
s, though you may call it, too. It formats (see perlform) a list of values according to the contents of PICTURE, placing the output into the format output accumulator, $^A
(or $ACCUMULATOR
in English). Eventually, when a write
is done, the contents of $^A
are written to some filehandle. You could also read $^A
and then set $^A
back to ""
. Note that a format typically does one formline
per line of form, but the formline
function itself doesn't care how many newlines are embedded in the PICTURE. This means that the ~
and ~~
tokens treat the entire PICTURE as a single line. You may therefore need to use multiple formlines to implement a single record format, just like the format
compiler.
Be careful if you put double quotes around the picture, because an @
character may be taken to mean the beginning of an array name. formline
always returns true. See perlform for other examples.
If you are trying to use this instead of write
to capture the output, you may find it easier to open a filehandle to a scalar (open my $fh, ">", \$output
) and write to that instead.