$slurp.=$_ while ; @data=split/^(=+)([\w\s]+)\1$/m, $slurp; unshift @data,'',''; while ( ($level,$header,$text,@data) = @data ) { print " " x length($level),$header,"\n"; # print $text,"\n\n"; } __DATA__ #### Title of Page Literature Comments Microarray Data Comments Pathway Information Comments Aditional Info