in reply to Search and Replace Within Subscopes
Obviously, if the data being edited contains stuff like this:{ local $/; # go to slurp mode for input open( I, "<", "my_source_code" ) or die "my_source_code: $!"; $_ = <I>; close I; s/(if.*?)\s+{/$1 {/g; # fix spacing/line-breaks for "if .... {" open( O, ">", "my_new_source_code" ) or die "my_new_source_code: $ +!"; print O; close O; }
then it willif ( "blah { blah } blah" ) { ...
which involves looking specifically for "if" plus some minimal number of non-line-break characters, followed by close-paren, followed a line-break (which might be surrounded by other kinds of whitespace). Even then, it's worth checking to see that the input and output meet your expectations.s/(if.*?\))[ \r\t]*\n\s+{/$1 {/; # fix spacing/line-breaks for " +if (...) {"
(updated second s/// example to include "\r")
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Search and Replace Within Subscopes
by DanielNeedles (Novice) on Jul 04, 2008 at 16:06 UTC | |
by toolic (Bishop) on Jul 04, 2008 at 17:00 UTC |