2010-04-11 4 views
3

Pourriez-vous s'il vous plaît jeter un oeil à mon code ci-dessous.Concaténation de chaînes Numéro

#!C:\Perl\bin\perl.exe 
use strict; 
use warnings; 
use Data::Dumper; 

my $fh = \*DATA; 
my $str1 = "listBox1.Items.Add(\""; 
my $str2 = "\")\;"; 

while(my $line = <$fh>) 
{ 
    $line=~s/^\s+//g; 

    print $str1.$line.$str2; 

    chomp($line); 

} 


__DATA__ 
Hello 
World 

sortie:

D:\learning\perl>test.pl 
listBox1.Items.Add("Hello 
");listBox1.Items.Add("World 
"); 
D:\learning\perl> 

erreur de style. Je veux le style ci-dessous. Y a-t-il quelque chose qui ne va pas dans mon code? Merci.

D:\learning\perl>test.pl 
listBox1.Items.Add("Hello"); 
listBox1.Items.Add("World"); 
D:\learning\perl> 
+0

Et la connexion à la base de données est où exactement ?! –

+0

Il voulait dire concaténation. – Htbaa

+0

@Paulo, j'ai modifié le tag de ** chaîne-de-connexion ** à ** chaîne **. :-) –

Répondre

2

La ligne lue en $line a un newline de fuite car. Vous devez utiliser chomp pour vous en débarrasser. Vous avez chomp dans votre code, mais c'est mal placé. Déplacer au début de la boucle comme:

while(my $line = <$fh>) 
{ 
    chomp($line);     # remove the trailing newline. 
    $line=~s/^\s+//g;    # remove the leading white space. 
    print $str1.$line.$str2."\n"; # append a newline at the end. 
} 

EDIT:

Réponse à la question dans le commentaire:

Pour enlever le leader espaces dans une chaîne:

$str =~s/^\s+//; 

Pour supprimer le fuite (fin) espaces dans une chaîne:

$str =~s/\s+$//; 

Pour enlever le avant et arrière espaces dans une chaîne:

$str =~s/^\s+|\s+$//g; 
+0

Je pense que le problème est sur l'expression régulière qui sélectionne le nouveau caractère de ligne. Jetez un oeil à la réponse souhaitée. –

+0

@unicornaddict Merci encore. Acturally je développe une application C#, BTW, je veux simplifier mon code C# avec l'aide de Perl. :-) –

+0

@unicornaddict: Comment supprimer l'espace blanc de fin? Ensuite, je peux gérer l'espace blanc de fin comme ça, *** listBox1.Items.Add ("Bonjour"); *** merci. –

2

Pensez à l'ordre, entre l'impression et chomp;)

Questions connexes