我想使用perl在html文件中提取表数据

时间:2013-05-13 09:14:22

标签: perl parsing

我是一名新手程序员。我有大约100个html文件,每个文件我必须从不同的行中提取数据并单独存储。我写了下面的代码,有些人请帮我弄清楚这些缺陷。

#!/usr/bin/perl -w 
use strict;
use warnings;
use HTML::TableExtract ;
my$te = HTML::TableExtract->new(headers => [qw('Compound' 'Name' 'Adduct' 'Adduct MW (Da)' 'Compound MW (Da)' 'Delta')]) ;
my @files = </home/akhila/sta/hmdb_hits/com_pks_stn/*.html>;
foreach my $files(@files){
  $te ->parse_file($files) or die "cannot parse file";
  foreach  my $ts ($te->table()){
    print "Table(", join(',', $ts->coords),"):\n";
    foreach  my$row($ts->rows()){
      print join(',', @$row), "\n";
    }
  }
}       

1 个答案:

答案 0 :(得分:1)

您需要了解quota like operators在perl中的工作原理。尝试下一个代码,您将立即看到问题。

use strict;
use warnings;
use Data::Dumper;
use HTML::TableExtract;

my $te1 = HTML::TableExtract->new(headers => [qw('Compound' 'Name' 'Adduct' 'Adduct MW (Da)' 'Compound MW (Da)' 'Delta')]) ;
print Dumper $te1->{headers};

my $te2 = HTML::TableExtract->new(headers => ['Compound', 'Name', 'Adduct', 'Adduct MW (Da)', 'Compound MW (Da)', 'Delta']) ;
print Dumper $te2->{headers};