0

当我在 cgi perl 上工作时,我正在尝试对齐两个序列并将它们打印在网页上,但它们可能与这部分有一些问题,因为我没有在网页上获得我想要的输出格式。如果我尝试在 txt 文件上打印此输出,那么它会以我想要的正确方式出现。

代码有问题

print "[$id]\n";
print "Length = $M\n\n";
print "Score = $bitS bits ($S), Expect = $Eval\n";
print "Identities = $matchnum/$totlen ($ipct%), Positives = $sim/$totlen ($Ppct%), Gaps = $gapnum/$totlen ($Gpct%)\n\n";
print "Query ";
print "$_"foreach @align1;
print "\n";
print "      ";
print "$_"foreach @homol;
print "\n";
print "Sbjct ";
print "$_"foreach @align2;
print "\n\n\n";`

输入1 YLGGAILAEVIGTTLMKFSEGFTRLWPSVGTIICYCASFWLLAQTLAYIPTGIAYAIWSG

输入2 MKWLILVLGILSNASASVLVKYAMLPPRRFPSLADPMAALSNWPFWLGLALYGGAFLLYA

输出应该是这样的:

Score = 82.4 bits (202), Expect = 3.973330e-025
Identities = 40/40 (100.0%), Positives = 40/40 (100.0%), Gaps = 0/40 (0.0%)
Query MTDTTLPPGGDAADRVEPVDIQQEMQRSYIDYAMSVIVGR

      ||||||||||||||||||||||||||||||||||||||||

Sbjct MTDTTLPPGGDAADRVEPVDIQQEMQRSYIDYAMSVIVGR

就像在我的网页上一样,我以这种方式获得

Score = 82.4 bits (202), Expect = 3.973330e-025 Identities = 40/40 (100.0%), Positives = 40/40 (100.0%), Gaps = 0/40 (0.0%) Query MTDTTLPPGGDAADRVEPVDIQQEMQRSYIDYAMSVIVGR  |||||||||||||||||||||||||||||||||||||||| Sbjct MTDTTLPPGGDAADRVEPVDIQQEMQRSYIDYAMSVIVGR
4

3 回答 3

5

您要返回什么内容类型的标头?如果您告诉浏览器期待 HTML,那么它会将您的数据解释为 HTML 并忽略任何空格(包括换行符)。

如果您要发送纯文本,那么您应该发送文本/纯文本的内容类型。

于 2013-05-23T12:12:07.833 回答
1

但是,您不是在输出 .txt 文件,而是在尝试输出 HTML,因此您必须输出诸如 <p>、<br /> 和 <pre> 之类的 HTML 标记以正确构建它。将整个输出包装在 <pre> 标签中应该可以得到你想要的,在这里,即添加:

print "<pre>\n";

在开始时,并且:

print "</pre>\n";

最后,最好还有完整的 <html> 和 <body> 标签。

于 2013-05-23T12:08:03.057 回答
0

感谢 paul-griffiths 和 Dave Cross 分享您的知识。如前所述,我使用<Br><p>标签,但在显示对齐时遇到了同样的错误......最后,用<pre>标签解决我的问题......再次感谢......

于 2013-05-27T06:18:49.650 回答