如何在Perl中的字符串中插入单词?

时间:2010-04-27 23:06:22

标签: perl string-concatenation

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

my $fh = \*DATA;  

while(my $line = <$fh>)
{

    $line =~ s/ ^/male /x ;
    print $line ;
}

__DATA__  
1 0104 Mike Lee 2:01:48

输出

male 1 0104 Mike Lee 2:01:48

然后我尝试在racenumber(0104)之后插入男性,我用样式替换了代码。

$line =~ s/ ^\d+\s+\d+\s+ /male /x ; # but failed

实际上我想要输出。谢谢。

1 0104 male Mike Lee 2:01:48

2 个答案:

答案 0 :(得分:1)

将字符串的开头捕获到$1

use strict;  
use warnings;  

my $fh = \*DATA;   

while(my $line = <$fh>) 
{ 

    $line =~ s/ ^(\d+\s+\d+\s+) /${1}male /x ;
    print $line ; 
} 

__DATA__   
1 0104 Mike Lee 2:01:48

输出:

1 0104 male Mike Lee 2:01:48

更新:$1perlreref中描述的特殊变量。

答案 1 :(得分:1)

安全方法是

chomp $line;
@tmp = split / /, $line;

然后以任何你想要的方式连接