首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Perl、XML::Simple和一个令人不安的foreach循环

Perl、XML::Simple和一个令人不安的foreach循环
EN

Stack Overflow用户
提问于 2011-10-21 09:08:10
回答 2查看 1.6K关注 0票数 0

我是Perl的新手,也是XML::Simple的新手。

我有一个foreach循环(已经输入到$xmlHash中的XML数据)

代码语言:javascript
复制
foreach (@{$xmlHash->{$PROTEIN}->{$PEPTIDE}}) {}

当$peptide键包含多个肽时,这会起90倍的作用。然而,protein 91 (以及之后的许多其他)只有一个肽(标量值),这会导致perl抛出

代码语言:javascript
复制
Not an ARRAY reference at C:\...

让foreach循环也与标量$PEPTIDES一起工作的最佳方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-21 09:13:44

请参阅XML::Simple文档中的ForceArray

票数 6
EN

Stack Overflow用户

发布于 2011-10-21 09:30:51

使用

代码语言:javascript
复制
XMLin($xml, ForceArray => [ $PEPTIDE ])

for (@{ $xmlHash->{$PROTEIN}->{$PEPTIDE} }) { ... }

或者,

代码语言:javascript
复制
sub listify {
   return () if !defined($_[0]);
   return ref($_[0]) eq 'ARRAY' ? @{ $_[0] } : $_[0];
}

for (listify $xmlHash->{$PROTEIN}->{$PEPTIDE}) { ... }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7844002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档