关于替换指定关键字内的文本区域(perl)

关于替换指定关键字内的文本区域(perl)

各位大虾,我现在有这样的一个需求:
file1格式:
<begin>

<end>

file2格式:
<begin>

<end>
想用perl实现把file2的<begin>,<end>关键字的块内容替换file1的<begin>,<end>的块内容。
如何实现,小弟初学perl,各位大虾给个例子代码,急用,多谢多谢。
#!/usr/bin/perl
use warnings;
use strict;

my ($flag,$flag1) = (0,0);
my @r;
open FILE1,"1.txt";
open FILE2,"2.txt";

while(<FILE2>)
{
    if(/<begin>/)
    {
        $flag = 1;
    }
    if(/<end>/)
    {
        $flag = 0;
    }
    if($flag)
    {
        push @r,$_;
    }
}
while(<FILE1>)
{
    if(/<begin>/)
    {
        $flag1 = 1;
    }
    if(/<end>/)
    {
        $flag1 = 0;
    }
    if($flag1 && /<begin>/)
    {
        print @r;
    }
    if($flag1 == 0)
    {__DATA__
*********file1*********

aaaff
asffgvv
sddfgg
<begin>
n
c
a
i
<end>
ddff
c
d
fgghh
fdrt
sdfg
dffg
ddfg

__DATA__
***********file2*********

<begin>
q
i
a
n
g
<end>
asd
f
e
r
tgtg

        print $_;
    }
}
rename file2,file2.bak
rename file2,file1
rename file2.bak,file2
如果你需要保留file1,就rename file1,file1.bak


QUOTE:
原帖由 hdc1112 于 2008-7-8 17:42 发表
rename file2,file2.bak
rename file2,file1
rename file2.bak,file2
如果你需要保留file1,就rename file1,file1.bak

niubility!