我是Perl的新手,也是XML::Simple的新手。
我有一个foreach循环(已经输入到$xmlHash中的XML数据)
foreach (@{$xmlHash->{$PROTEIN}->{$PEPTIDE}}) {}当$peptide键包含多个肽时,这会起90倍的作用。然而,protein 91 (以及之后的许多其他)只有一个肽(标量值),这会导致perl抛出
Not an ARRAY reference at C:\...让foreach循环也与标量$PEPTIDES一起工作的最佳方法是什么?
发布于 2011-10-21 09:13:44
请参阅XML::Simple文档中的ForceArray。
发布于 2011-10-21 09:30:51
使用
XMLin($xml, ForceArray => [ $PEPTIDE ])
for (@{ $xmlHash->{$PROTEIN}->{$PEPTIDE} }) { ... }或者,
sub listify {
return () if !defined($_[0]);
return ref($_[0]) eq 'ARRAY' ? @{ $_[0] } : $_[0];
}
for (listify $xmlHash->{$PROTEIN}->{$PEPTIDE}) { ... }https://stackoverflow.com/questions/7844002
复制相似问题