}
# For an 'e' quote modifier we must scan the replacement
- # text for here-doc targets.
- if ($saw_modifier_e) {
+ # text for here-doc targets...
+ # but if the modifier starts a new line we can skip
+ # this because either the here doc will be fully
+ # contained in the replacement text (so we can
+ # ignore it) or Perl will not find it.
+ # See test 'here2.in'.
+ if ( $saw_modifier_e && $i_tok >= 0 ) {
my $rht = scan_replacement_text($qs1);
--- /dev/null
+$_ = "";
+s|(?:)|"${\<<END}"
+ok $test - here2.in "" in multiline s///e outside eval
+END
+|e;
+print $_ || "not ok $test\n";
--- /dev/null
+$_ = "";
+s|(?:)|"${\<<END}"
+ok $test - here2.in "" in multiline s///e outside eval
+END
+|e;
+print $_ || "not ok $test\n";
../snippets16.t ndsm1.ndsm
../snippets16.t rt131288.def
../snippets16.t rt130394.rt130394
+../snippets16.t git18.def
../snippets2.t angle.def
../snippets2.t arrows1.def
../snippets2.t arrows2.def
../snippets9.t rt98902.def
../snippets9.t rt98902.rt98902
../snippets9.t rt99961.def
-../snippets16.t git18.def
+../snippets16.t here2.def
#16 rt131288.def
#17 rt130394.rt130394
#18 git18.def
+#19 here2.def
# To locate test #13 you can search for its name or the string '#13'
foreach my $key ( keys %bb ) {
print "key='$key' => $bb{$key}\n";
}
+----------
+
+ 'here2' => <<'----------',
+$_ = "";
+s|(?:)|"${\<<END}"
+ok $test - here2.in "" in multiline s///e outside eval
+END
+|e;
+print $_ || "not ok $test\n";
----------
'multiple_equals' => <<'----------',
}
#18...........
},
+
+ 'here2.def' => {
+ source => "here2",
+ params => "def",
+ expect => <<'#19...........',
+$_ = "";
+s|(?:)|"${\<<END}"
+ok $test - here2.in "" in multiline s///e outside eval
+END
+|e;
+print $_ || "not ok $test\n";
+#19...........
+ },
};
my $ntests = 0 + keys %{$rtests};