in reply to
Regular Expression tricky newline problem
Use a non-greedy match:
#!/usr/bin/perl
use strict;
use warnings;
local $/=undef;
my $contents=<DATA>;
my ($thirdline) = $contents =~ m/Line3 : (.*?)\n/s;
print $thirdline."\n";
__DATA__
Line1 : Dit is de eerste regel
Line2 : Dit is de tweede regel
Line3 : Dit is de derde regel
Line4 : Dit is de vierde regel
Output:
Dit is de derde regel
Or you could match against a negated character class:
my ($thirdline) = $contents =~ m/Line3 : ([^\n]+)/s;
A computer is a state machine. Threads are for people who can't program state machines. -- Alan Cox