http://qs1969.pair.com?node_id=544589


in reply to Re: Passing variables into regular expressions
in thread Passing variables into regular expressions

I could be misunderstanding something but I thought you had to use the s flag to get the regular expression to match across newlines. The following script

use strict; use warnings; my $str = "ab12c\nde34f\ngh56i\njk78l"; my @digits = $str =~ /(\d+)/g; print "\@digits -- @digits\n\n"; my ($span_d) = $str =~ /(\d\d.*?\d\d)/; print "\$span_d -- $span_d\n\n"; my ($span_m) = $str =~ /(\d\d.*?\d\d)/m; print "\$span_m -- $span_m\n\n"; my ($span_s) = $str =~ /(\d\d.*?\d\d)/s; print "\$span_s -- $span_s\n\n";

produces

@digits -- 12 34 56 78 Use of uninitialized value in concatenation (.) or string at reSorM li +ne 12. $span_d -- Use of uninitialized value in concatenation (.) or string at reSorM li +ne 15. $span_m -- $span_s -- 12c de34

The m flag doesn't seem to so the trick. Have I missed something?

Cheers,

JohnGG