Skip to content

Wrong line number inside multiline quote-like operators #18721

@bes-internal

Description

@bes-internal

Regression was introduced in ffdb8b1 (perl-5.20.0)

Associated lines in perldelta:

Perl now tries a little harder to return the correct line number in (caller)[2]. [perl rt 115768]
Line numbers inside multiline quote-like operators are now reported correctly. [perl rt 3643] --> #2319 on github

Perl code

"@{[ q!0
1
2
3
4
5
6
7!
]}";
die __LINE__;

Generate with perlbrew exec perl -MO=Deparse 1.pl

perl-5.33.8
==========
join $", @{["0\n1\n2\n3\n4\n5\n6\n7"];};
die '3';
1 syntax OK

perl-5.26.1
==========
join $", @{["0\n1\n2\n3\n4\n5\n6\n7"];};
die '3';
1 syntax OK

perl-5.20.3
==========
qq[@{["0\n1\n2\n3\n4\n5\n6\n7"];}];
die '3';
1 syntax OK

perl-5.18.4
==========
qq[@{["0\n1\n2\n3\n4\n5\n6\n7"];}];
die '10';
1 syntax OK

perl-5.8.0
==========
qq[@{["0\n1\n2\n3\n4\n5\n6\n7"];}];
die '10';
1 syntax OK

Correct is 10

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions