http://qs1969.pair.com?node_id=559253


in reply to FORMAT Trouble

It's a big ugly, but you can use select and $~ to change the format for a given filehandle. See perlform for more info. In the meantime, here is a brief example:

use strict; use warnings; open( my $outfh, '>', 'temp.txt' ) or die $!; my ( $var1, $var2 ) = ( 'one', 'two' ); my $oldfilehandle = select $outfh; $~ = "FORMAT1"; select $oldfilehandle; write $outfh; $oldfilehandle = select $outfh; $~ = "FORMAT2"; select $oldfilehandle; write $outfh; $oldfilehandle = select $outfh; $~ = "FORMAT1"; select $oldfilehandle; write $outfh; format FORMAT1 = @<<<<< @<<<<< $var1, $var2 . format FORMAT2 = @<<<<<XXX@<<<<< $var2, $var1 . close $outfh;
And the output file:
one two two XXXone one two