Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re^3: parsing a multi-line pattern and replacing

by ghosh123 (Monk)
on Apr 25, 2014 at 08:00 UTC ( #1083750=note: print w/replies, xml ) Need Help??


in reply to Re^2: parsing a multi-line pattern and replacing
in thread parsing a multi-line pattern and replacing

Hi,
I could do it myself. Here goes the code

tie @array , 'Tie::File' , "$file" ; foreach my $key (keys %varHash) { my $keyflag = 0 ; my $changedVal = $varHash{$key}{newVal}; my $startdef = '<default>'; my $enddef = '</default>'; my $storedindex; print "key $key | changedVal $changedVal \n"; for(my $i = 0 ; $i <= $#array ; $i++) { if($array[$i] =~ /$key/) { print "here $key \n"; $keyflag = 1 ; next; } elsif ($array[$i] =~ /\<default\>.*?\<\/default\>/gs) { # print "array[i] $array[$i] \n"; if($keyflag) { $array[$i] = "$startdef"."$changedVal"."$enddef"; $keyflag = 0; last; } } elsif($array[$i] =~ /^\s*\<default>.*[^\>]$/) { $storedindex = $i ; } elsif($storedindex > 0 ) { if ($array[$i] =~ /\<\/default\>/) { my $range = $i - $storedindex; splice(@array, $storedindex,$range); $array[$storedindex] = "$startdef"."$changedVal"." +$enddef"; last; } } } } untie(@array); }

Replies are listed 'Best First'.
Re^4: parsing a multi-line pattern and replacing
by Anonymous Monk on Apr 25, 2014 at 13:06 UTC

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1083750]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (3)
As of 2022-05-18 14:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you prefer to work remotely?



    Results (71 votes). Check out past polls.

    Notices?