Your spec is pretty minimal, but here's one way to achieve your goal:
#! perl -slw use strict; use Data::Dump qw[ pp ]; my $text = do{ local $/; <DATA>; }; my( $n, @scopes ) = 1; 1 while $text =~ s[ ( \{ [^{}]+ \} ) ]{ push @scopes, $1; '_' . $n++ . '_'; }gex; s[scope (\d+) text][processed text $1]g for @scopes; $text =~ s[_${ \( $_+1 ) }_]{ $scopes[ $_ ] }eg for reverse 0 .. $#sco +pes; print $text; __DATA__ text text {scope 4 text {scope 2 text {scope 1 text} scope 2 text} sco +pe 4 text {scope 3 text} scope 4 text } text text
Output:
C:\test>1139932 text text {processed text 4 {processed text 2 {processed text 1} proce +ssed text 2} processed text 4 {processed text 3} processed text 4 } t +ext text
In reply to Re: Text parsing. Processing scopes and subscopes.
by BrowserUk
in thread Text parsing. Processing scopes and subscopes.
by Lana
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |