I've tried a number ways, as you can imagine. Here's one that sets the top of page format to TOP, not BLANK for the first page:
#BLANK is a blank format. I want to use that as the top of
# page formatfor the START page
#START is the first page, should have BLANK top of page
# format
#TOP is the top of page format for each page except the
# START page
#BOTTOM is the final format
open(BOTTOM,">mytext.txt"

|| die "can't create mytext.txt";
$main=select BOTTOM;#change filehandle and save main::STDOUT as $main
$^="BLANK";#set top of the page format to BLANK
$= = 30;#set linefeed at 30 lines per page
$~ = "START";#set format to START
write (START);#invoke format
$- =0;#set linefeed count to zero
select $main;#reselect main::STDOUT as default filehandle
$main=select BOTTOM;# change filehandle to BOTTOM again
$^="TOP";#set top of the page format to BLANK
$= = 30;#set linefeed at 30 lines per page
select $main;#reselect main::STDOUT as default filehandle
.
.
.
$^="BOTTOM";#change the format to BOTTOM
write(BOTTOM);
close(BOTTOM);
I know I'm missing something here.