use strict ; # please, do use IO::File ; my ($name1,$name2) ; my $fh = IO::File->new() ; $fh->fdopen(fileno(STDOUT),'w') or die "Cannot open STDOUT: $!" ; $fh->format_name('NAMES') ; # Write to STDOUT using $fh, like this foreach my $data ([qw(mama papa)],[qw(tick tock)],[qw(cip ciop)]) { ($name1,$name2) = @$data ; $fh->format_write() ; } # your format definition goes here format NAMES = @<<<<<<<< @<<<<<<<<< $name1 $name2 .