in reply to Multiple lines replacement using s###g;

You seem to want an output similar to
[F1] //*************************************/ //* Filename: Config2.c */ //* Comment: [F2] replace [F2] */ //* */ //*************************************/ [F2] //***********************************/ //* Filename: Config2.c */ //* Comment: [F2] replace [F2] */ //* */ //* */ //***********************************/
where comments would be cleaned up as well and not some swapping of entire records right ? if so the case then consider:
use strict; use warnings; local $/=''; my %hash; while(my $data=<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] */ /* */ /* */ /***********************************/


Excellence is an Endeavor of Persistence. Chance Favors a Prepared Mind.