2010-04-11 68 views
1

我的代碼如下,如何刪除添加hello後的空格。到每一行。如何在perl中的每一行插入一個子字符串

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

my $fh = \*DATA; 

#my($line) = $_; 
while(my $line = <$fh>) 
{ 
    print "Hello.".$line; 
    chomp($line); 

} 


__DATA__ 
Member Information 
    id = 0 
    name = "tom" 
    age = "20" 

輸出:

D:\learning\perl>test.pl 
Hello.Member Information 
Hello. id = 0 # I want to remove the white space between Hello. and id 
Hello. name = "tom" # same as above 
Hello. age = "20" # same 

D:\learning\perl> 

回答

2

一種方法是刪除從數據本身的前導空格爲:

__DATA__ 
Member Information 
id = 0 
name = "tom" 
age = "20" 

其他的方法是刪除從前導空格$line你之前打印:

print之前就補充一點:

$line=~s/^\s+//; 
2

如果每行有4個前導空格,你可以使用:

substr $line, 0, 4, ""; 
1

我會刪除串並添加招呼一鼓作氣

while (<DATA>) { 
    s/^\s+ /Hello./x ; 
    print ; 
} 

^=停泊在開始字符串

\ s + =一個或多個空格

/X =允許在正則表達式爲清楚起見

或額外的空間更冗餘

while(my $line = <$fh>) 
{ 
    $line =~ s/^\s+ /Hello./x ; 
    print $line ; 
} 
相關問題