perl +如何在foreach循环中使用chomp

时间:2010-07-14 18:39:56

标签: perl

以下perl脚本(显示下来)

打印以下XML文件 但XML存在问题,因为在TEST字

之后不必要的“&#10”字符
 <ROOT>
     <FILE Name="TEST1&#10;"/>
     <FILE Name="TEST2&#10;"/>
     <FILE Name="TEST&#10;"/>ar
</ROOT>

我认为“&amp;#10”字符是因为换行符(用反引号操作符读取命令输出到@myNames) 似乎我的XML中现有“&amp;#10”的这个问题可以解决chomp命令

我的问题:以哪种方式需要在我的脚本中添加chomp命令才能解决问题

我的perl脚本

#!/usr/bin/perl

use warnings;
use XML::LibXML;


my $doc  = XML::LibXML::Document->new; 
my $root = $doc->createElement('ROOT');
$doc->setDocumentElement($root);


my @myNames=` ls /var/tmp | grep FILE.xml | sed "s/.FILE.*//"  `;

foreach (@myNames) {

my $objVar = $doc->createElement('FILE');
$root->appendChild($objVar);
$objVar->setAttribute('Name' , $_ );

} 


my @lines = split /\n/, $doc->toString(1);
shift @lines;

foreach (@lines) {

print "$_\n";
}

/ var / tmp

下的文件
   TEST1-FILE.xml
   TEST2-FILE.xml
   TEST-FILE.xml

1 个答案:

答案 0 :(得分:5)

在获得文件名列表后立即使用它:

my @myNames=` ls /var/tmp | grep FILE.xml | sed "s/.FILE.*//"  `;
chomp(@myNames);
...