use strict; use warnings; local $/=''; my %hash; while(my $data=){ my @array = split(/\n/,$data,2); $hash{$array[0]}=$array[1]; } foreach my $key (keys %hash){ if ($key =~ /\[F1\]/){ $hash{$key} = $hash{'[F2]'} ; } print $key, "\n", $hash{$key},"\n"; } #use Data::Dumper; #print Dumper(\%hash); __DATA__ [F1] //*********************************** //* Filename: Config1.c //* Comment: [F1] is replaced by [F2] //* //*********************************** [F2] /***********************************/ /* Filename: Config2.c */ /* Comment: [F2] replace [F2] */ /* */ /* */ /***********************************/