my @lines = split "\n", $schema; for (@lines) { ... s/\)\n/\);\n/; ... }
None of the substrings split from $schema in the
my @lines = split "\n", $schema;
statement will contain a newline because you're splitting on a newline, thus the match regex of s/\)\n/\);\n/; will never match.
To add a ';' (semicolon) after a ')' (right-paren) that was at the end of a newline-terminated line, try
s{ \) \z }{);}xms;
or maybe to be on the safe side
s{ \) \s* \z }{);}xms;
(I assume you're stitching all the lines back together with something like a
$schema2 = join "\n", @lines;
statement).
In reply to Re: regular expression code not working
by AnomalousMonk
in thread regular expression code not working
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |