The multiline flag lets anchors check the beginning and end of each line.

Multiline Anchors

multiline_anchors.pl
use strict;
use warnings;

my $second = ;
my $block = "ok\n$second";
my $has_warn = $block =~ /^warn$/m;
my $line_count = scalar split /\n/, $block;
my $status = $has_warn ? "needs review" : "clear";

print "second=$second\n";
print "line_count=$line_count\n";
print "has_warn=$has_warn\n";
print "status=$status\n";
use strict;
use warnings;

my $second = ;
my $block = "ok\n$second";
my $has_warn = $block =~ /^warn$/m;
my $line_count = scalar split /\n/, $block;
my $status = $has_warn ? "needs review" : "clear";

print "second=$second\n";
print "line_count=$line_count\n";
print "has_warn=$has_warn\n";
print "status=$status\n";
use strict;
use warnings;

my $second = ;
my $block = "ok\n$second";
my $has_warn = $block =~ /^warn$/m;
my $line_count = scalar split /\n/, $block;
my $status = $has_warn ? "needs review" : "clear";

print "second=$second\n";
print "line_count=$line_count\n";
print "has_warn=$has_warn\n";
print "status=$status\n";
multiline-anchors Multiline matching is useful for small record blocks where each line can carry its own status.