note
tybalt89
<p>
It has nothing specifically to do with POSTMATCH, you just ran into the multi-concatenation optimization.
</p>
<code>
#!/usr/bin/perl
use strict; # https://perlmonks.org/?node_id=11118049
use warnings;
use v5.10;
sub add_incr_suffix
{
state $suffix = 'A';
return "prefix-TEXT-" . $suffix++;
}
print 'Test ' .
( add_incr_suffix =~ /^prefix-*/p ? "${^POSTMATCH}" : '' ) . "," .
( add_incr_suffix =~ /^prefix-*/p ? "${^POSTMATCH}" : '' ) . "," .
( add_incr_suffix =~ /^prefix-*/p ? "${^POSTMATCH}" : '' ) . "\n";
</code>
<p>
Here is a simpler example that produces different output under 5.26 and 5.30
</p>
<c>
#!/usr/bin/perl
use strict; # https://perlmonks.org/?node_id=11118049
use warnings;
my $foo;
print "test: " . ($foo = 1) . ($foo = 2) . ($foo = 3), "\n";
</c>
11118049
11118049