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


in reply to A format to "print" to variable?

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.

Replies are listed 'Best First'.
Re: Re: A format to "print" to variable?
by rob_au (Abbot) on Oct 19, 2002 at 14:47 UTC
    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"'