Yes, there is a way to store formatting output, one which I only found out about recently while flicking through a copy of Perl in a Nutshell. The perlfunc:formline function, 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.
my @list = (1, 2);
# the output format can be stored in a variable prior to
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. For further information see perlfunc:formline and perlform.
I had been intending to write an obfuscation based upon this trick, but ... oh well ... :-)