#ObjectType1
Param1: 8
Param2: SomeText
#ObjectType1.NestedObject
Param1: 3
Param2: SomeText
#ObjectType1
...
#ObjectType2
...
####
ObjectType1
{
Param1 = 8
Param2 = SomeText
NestedObject
{
Param1 = 3
Param2 = SomeText
}
}
ObjectType2
{
...
}
ObjectType1
{
...
}
##
##
use strict ;
use warnings ;
my $file = "test" ;
open (my $fhi, "<", $file . ".dat" ) or die "Cannot open $file.dat\n" ;
open (my $fho, ">", $file . "_out.dat" ) or die "Cannot open $file" . "_out.dat\n" ;
my $context = "" ;
while ( my $line = <$fhi> ) {
chomp $line ;
if ( $line =~ /ObjectType1/ ) {
$context = "ObjectType1" ;
}
if ( $line =~ /$\}/ ) {
$context = "" ;
}
if ( $context eq "ObjectType1" ) {
if ( $line =~ /Param1/ ) {
print $fho "Param1 = 0\n" ;
} elsif ( $line =~ /Param2/ ) {
print $fho "Param2 = SomeOtherText\n" ;
} else {
print $fho $line . "\n" ;
}
} else {
print $fho $line . "\n" ;
}
}