开发者

String Concatenation Issue

Could you please have a look at my code below.

#!C:\Perl\bin\perl.exe 
use strict; 
use warnings; 
use Data::Du开发者_如何学JAVAmper;  

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

Output:

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

Style error. I want the style below. Is ther anything wrong about my code? thanks.

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


The line read in $line has a trailing newline char. You need to use chomp to get rid of it. You have chomp in your code, but its misplaced. Move it to the start of the loop as:

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:

Answer to the question in the comment:

To remove the leading whitespace in a string:

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

To remove the trailing(ending) whitespace in a string:

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

To remove the leading and trailing whitespace in a string:

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


Think about the order, between print and chomp ;)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜