如何在Perl中将字串插入字符串中?
问题描述:
#!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),I与风格替换的代码。
$line =~ s/ ^\d+\s+\d+\s+ /male /x ; # but failed
Acturally我想要的输出。谢谢。
1 0104 male Mike Lee 2:01:48
答
捕获的字符串的开头到$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
更新:$1
是perlreref描述一个特殊的变量。
答
安全的方法是
chomp $line;
@tmp = split//, $line;
再以任何方式串接你想
@toolic。感谢您的**一美元**。我google了一下,发现这个'http:// stackoverflow.com/questions/1036285/what-does-1-mean-in-perl' – 2010-04-27 23:20:49
我用另一个链接更新了我的答案,描述了$ 1。 – toolic 2010-04-27 23:27:14