如何将单个解析后的行写入段落?

时间:2011-07-26 02:50:16

标签: perl terminal text-formatting

我使用XML :: Simple解析器提取了一个段落。我把它解析成一行。这是代码,我提取了摘要。

use LWP::Simple;
use XML::Simple;
use Data::Dumper;

open (FH, ">:utf8","xmlparsed2.txt");
my $db1 = "pubmed";
my $q = 16404398;
my $xml = new XML::Simple;
$urlxml = "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=$db1&id=$q&retmode=xml&rettype=abstract";
$dataxml = get($urlxml);
$data = $xml->XMLin("$dataxml", ForceArray => [qw( MeshHeading Author AbstractText )], ForceContent=>1);
print FH Dumper($data);
print FH "Abstract: ".join "\n", map {join ":",($_->{NlmCategory},$_->{content})} @{$data->{PubmedArticle}->{MedlineCitation}->{Article}->{Abstract}->{AbstractText}};

我的问题是:它是否可以解析为适合窗口并且在段落中而不是在一行中?

1 个答案:

答案 0 :(得分:6)

我的问题是它可以解析为适合窗口

问题1,如何确定终端窗口的大小

答案是使用

use Term::Size;

($columns, $rows) = Term::Size::chars *STDOUT{IO};
($x, $y) = Term::Size::pixels;

并且在段落而不是一行?

对于问题2,使用核心模块Text :: Wrap或Text :: Fold ...