|Just another Perl shrine|
Answer: Apply regex to entire file, not just individual lines ?
Q&A > regular expressions > Apply regex to entire file, not just individual lines ? contributed by nuance
You can read the entire file into a scalar variable like this
Then you can just use your normal regular expression, but you'll probably want to use at least one of the following modifiers (from the perlre manpage):
Treat string as multiple lines. That is, change ``^'' and ``$'' from matching at only the very start or end of the string to the start or end of any line anywhere within the string,
Treat string as single line. That is, change ``.'' to match any character whatsoever, even a newline, which it normally would not match. The /s and /m modifiers both override the $* setting. That is, no matter what $* contains, /s without /m will force ``^'' to match only at the beginning of the string and ``$'' to match only at the end (or just before a newline at the end) of the string. Together, as /ms, they let the ``.'' match any character whatsoever, while yet allowing ``^'' and ``$'' to match, respectively, just after and just before newlines within the string.