Kiko Uehara wrote: > > Hi everyone, Hello,
> I have a following data to analyze : > --------- > BlockA > color 0 0 0 > rcolor 1 1 1 > dcolor 2 2 2 > > BloackB > color 0 0 0 > rcolor 1 1 1 > dcolor 2 2 2 > (...and so on) > --------- > > I want to replace > BlockA rcolor "1 1 1" to "4 4 4" > and > BlockB rcolor "1 1 1" to "0 0 0". > > I have variables like $BlockA_rcolor = "rcolor 4 4 4". > > ------------- > while (<IN>) > { > if ( $_ =~ m/rcolor/ ) > { > $_ = $BlockA_rcolor; > } > print $_; > } > ------------- > Above code will replace all 'rcolor' lines in the data. > > Can anyone please give me an idea, what kind of method I could use ? > If my question doesn't have enough information, please let me know. It looks like you should use paragraph mode and probably a hash: $/ = ''; my %rcolor = ( A => '4 4 4', B => '0 0 0' ); while ( <IN> ) { if ( /^\s+Block([A-Z])\b/ ) { my $key = $1; s/\b(rcolor\s+)\d+\s+\d+\s+\d+/$1$rcolor{$key}/; } print; } John -- use Perl; program fulfillment -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]