http://www.perlmonks.org?node_id=206480

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Is there a way to have a "format" ouput to a variable? Hard to search on Google, as all terms are generic ;-)

Replies are listed 'Best First'.
Re: A format to "print" to variable?
by mojotoad (Monsignor) on Oct 19, 2002 at 04:33 UTC
    Check out Open Has a New Trick ... Zaxo demonstrates a nifty way of associating a filehandle with a scalar variable.

    Whether this is the best way to go about the problem I have no idea, but it's a neat trick.

    Matt

    P.S. Upon rereading your request, I might be guilty of an overly elaborate interpretation. You might want the sprintf() function if you merely want to format a string...I was thinking you wanted to use formats.

      There is another manner by which formatted data can be stored in strings through use of the formline function which I described in this post.

      The formline function is normally only used internally, 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.

      From the previous node referenced:

      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 -e 'print+unpack("N",pack("B32","00000000000000000000000111010011")),"\n"'

Re: A format to "print" to variable?
by Enlil (Parson) on Oct 19, 2002 at 04:38 UTC
Re: A format to "print" to variable?
by sharkey (Scribe) on Oct 19, 2002 at 16:58 UTC