2010-04-11 56 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 ; 
} 
相关问题