Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

String Concatenation Issue

Tags:

string

perl

Could you please have a look at my code below.

#!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

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>
like image 852
Nano HE Avatar asked Mar 10 '26 03:03

Nano HE


1 Answers

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;
like image 176
codaddict Avatar answered Mar 12 '26 17:03

codaddict



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!