2010-07-14 5 views
1

le script perl suivant (affichage vers le bas)perl + comment utiliser Chomp en boucle foreach

d'imprimer le fichier XML suivant mais le XML ont des problèmes parce que le nécessaire "& # 10" char après mot TEST

<ROOT> 
    <FILE Name="TEST1&#10;"/> 
    <FILE Name="TEST2&#10;"/> 
    <FILE Name="TEST&#10;"/>ar 
</ROOT> 

Je pense que les « & # 10 » caractères son parce que le saut de ligne (lire la sortie d'une commande en @myNames avec l'opérateur backtick) il semble que ce problème de mon XML existant « & # 10 » peut être commande chomp résolue

ma question: de quelle manière besoin d'ajouter la commande Chomp dans mon script afin de résoudre le problème

mon script 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"; 
} 

les fichiers sous/var/tmp

TEST1-FILE.xml 
    TEST2-FILE.xml 
    TEST-FILE.xml 

Répondre

5

Allez-y et l'utiliser immédiatement après que vous obtenez la liste des noms de fichiers:

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

son OK maintenant beaucoup beaucoup beaucoup beaucoup yael – yael

+0

@yael: si cela a fonctionné pour vous, pourquoi ne pas mettre la réponse? Je vois que vous avez posé 64 questions et que vous n'avez pas mis de côté une seule âme. (Veuillez relire le courriel que vous avez reçu la dernière fois que vous avez été suspendu.) – Ether

+0

Je vote déjà, – yael