in reply to Repeat print problem

Hi,

I know this is slightly off topic, but is it possible to direct the output of the format command to a scalar instead of STDOUT?

I have looked at the documentation and I can’t see anything that will point me in the right direction? Is there another module that might be able to help me?

Thanks,

Alistair

Replies are listed 'Best First'.
Re: Re: Repeat print problem
by rob_au (Abbot) on Apr 29, 2003 at 02:21 UTC
    The formline function can be used to do this - The formline function is normally only used internally but allows for formats to be built and returned in the format output accumulator, $^A. Normally, the contents of this variable are outputted to the currently selected filehandle via the write command, but this variable, $^A, can be read and reset directly.

    An example from a previous node which I have written on the subject:

    my @list = (1, 2); # the output format can be stored in a variable prior to # output my $format = '@<<<< @<<<<'; # format the contents of @list as per the format structure # defined in the variable $format, the output to be # stored in the format output accumulator, $^A formline $format, @list; print $^A, "\n"; $^A = "";

    Thus in this manner, through use of the formline function, both the output format and the subsequent formatted output can be retrieved and stored - This method is advantageous in that it can be employed with older installations of Perl. For further information see formline and perlform.

     

    perl -le 'print+unpack("N",pack("B32","00000000000000000000001001010100"))'