【发布时间】:2017-03-29 05:03:51
【问题描述】:
我正在尝试解析 XML 文件。我从这里下载数据 http://mips.helmholtz-muenchen.de/proj/ppi/
我使用了这段代码,但我得到了错误
use strict;
use warnings;
use XML::Twig;
my $MIPS_file = $ARGV[0];
my $xml = XML::Twig->new();
my $data = $xml->XMLin("$MIPS_file");
my $intList = $data->{'entry'}->{'interactionList'}->{'interaction'};
foreach my $int (@{$intList}) {
my $experiment_type = $int->{'experimentList'}->{'experimentDescription'}->{'interactionDetection'}->{'names'}->{'shortLabel'};
my $partList = $int->{'participantList'}->{'proteinParticipant'};
my ($p1,$p2);
foreach my $protPart(@{$partList}) {
if ($protPart->{'proteinInteractor'}->{'organism'}->{'ncbiTaxId'} eq "9606") { # select human proteins
if (!$p1) {
$p1 = $protPart->{'proteinInteractor'}->{'xref'}->{'primaryRef'}->{'id'};
}
else {
$p2 = $protPart->{'proteinInteractor'}->{'xref'}->{'primaryRef'}->{'id'};
}
}
}
print "$p1\$p2\n";
}
我将文件放在桌面(mac)的文件夹中然后我打开终端并调用程序,如perl myfile.pl
这是我得到的错误
在@INC 中找不到 XML/Simple.pm(@INC 包含:/Users/admin/perl5/perlbrew/perls/perl-5.16.0/lib/site_perl/5.16.0/darwin-2level /Users /admin/perl5/perlbrew/perls/perl-5.16.0/lib/site_perl/5.16.0 /Users/admin/perl5/perlbrew/perls/perl-5.16.0/lib/5.16.0/darwin-2level /Users /admin/perl5/perlbrew/perls/perl-5.16.0/lib/5.16.0 .) 在 myfile.pl 第 3 行。 BEGIN 失败——编译在 myfile.pl 第 3 行中止。
安装 twig 后,现在我收到此错误
Use of uninitialized value $MIPS_file in string at myfile.pl line 7.
Can't locate object method "XMLin" via package "XML::Twig" at myfile.pl line 7.
【问题讨论】:
-
错误是什么?
-
你必须从 CPAN 安装
XML::Simple -
或者更好,不要
XML::Simple is discouraged,而是使用XML::Twig或XML::LibXML。 -
您使用的是 Windows 还是 Unix?您使用的具体文件是什么? (网址)。
-
cpan install XML::Twig或者查看包管理器。这可能是相关的:apple.stackexchange.com/questions/75263/…