CARVIEW |
Select Language
HTTP/2 200
date: Mon, 13 Oct 2025 18:03:53 GMT
content-type: text/html; charset=utf-8
cache-control: max-age=0, private, must-revalidate
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com github.githubassets.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com wss://alive-staging.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com marketplace-screenshots.githubusercontent.com/ copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
link: ; rel=preload; as=fetch; crossorigin=use-credentials
referrer-policy: no-referrer-when-downgrade
server-timing: issue_layout-fragment;desc="issue_layout fragment";dur=224.764025,issue_conversation_content-fragment;desc="issue_conversation_content fragment";dur=690.512052,nginx;desc="NGINX";dur=1.427274,glb;desc="GLB";dur=138.899289
strict-transport-security: max-age=31536000; includeSubdomains; preload
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With, Accept,Accept-Encoding, Accept, X-Requested-With
x-content-type-options: nosniff
x-frame-options: deny
x-voltron-version: aab62e3
x-xss-protection: 0
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=5bS2Tq9iFKR7C%2Frs0KqDVbZQBdVaDeqMUPnhlzujWMkA7Jn1bsEhHh9MXxFOQuAru2Pl3G7RLkVnvSxNpJqhZbPK9EGFEU5LMLdv9iYD%2Fp01jdZ6jB3%2BbO9qMsIJhF9nExkoOPXZ%2F3w6zzfSRrFWpsGwh1yoM2w%2FO%2BitMHjOWUS1W9TKpkQstr7n70izPhxw1aoj4ZP5kzxaa7eBY7nZAfrqNxpGXvBeok5zy%2FeTWMML91Lisr2q260Z%2BL8b7S35x2GieXeMeENuAVmi3lKT4Q%3D%3D--4QnehNWZmPnIvBMK--Dhh49v2xipCYPi2InjJsgw%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.1067186312.1760378632; Path=/; Domain=github.com; Expires=Tue, 13 Oct 2026 18:03:52 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Tue, 13 Oct 2026 18:03:52 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: DC26:1BBBC8:237B00:29CA86:68ED3F08
POD section unexpectedly stops at =cut2 (or =cute in string eval) · Issue #22759 · Perl/perl5 · GitHub
No one assignedNo typeNo projectsNo milestoneNone yetNo branches or pull requests
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 597
Closed
Labels
Description
Description
The perl parser is supposed to skip over embedded POD sections. The end of a POD section is marked by a =cut
command. However, not every line that starts with =cut
is a =cut
command. For example: =cute
, =cut2
, =cut_dry
.
The perl parser does not correctly recognize these and, in the case of =cute
, behaves differently depending on whether we are in string eval or not.
Steps to Reproduce
use strict;
use warnings;
print "1..9\n";
my $test = 1;
my $foo;
$foo = "";
=pod
=cute
$foo = "not ";
=pod
=cut
print $foo, "ok $test - =cute does not end POD\n";
$test++;
$foo = "";
=pod
=cut2
$foo = "not ";
=pod
=cut
print $foo, "ok $test - =cut2 does not end POD\n";
$test++;
$foo = "";
=pod
=cut_
$foo = "not ";
=pod
=cut
print $foo, "ok $test - =cut_ does not end POD\n";
$test++;
$foo = "not ";
=pod
=cut$cene
$foo = "";
=pod
=cut
print $foo, "ok $test - =cut\$cene ends POD\n";
$test++;
# Same as above, but in string eval.
eval q{
$foo = "";
=pod
=cute
$foo = "not ";
=pod
=cut
print $foo, "ok $test - =cute does not end POD\n";
$test++;
$foo = "";
=pod
=cut2
$foo = "not ";
=pod
=cut
print $foo, "ok $test - =cut2 does not end POD\n";
$test++;
$foo = "";
=pod
=cut_
$foo = "not ";
=pod
=cut
print $foo, "ok $test - =cut_ does not end POD\n";
$test++;
$foo = "not ";
=pod
=cut$cene
$foo = "";
=pod
=cut
print $foo, "ok $test - =cut\$cene ends POD\n";
$test++;
};
print $@ eq "" ? "" : "not ", "ok $test - did not throw an error\n# $@\n";
__END__
Output:
1..9
ok 1 - =cute does not end POD
not ok 2 - =cut2 does not end POD
not ok 3 - =cut_ does not end POD
ok 4 - =cut$cene ends POD
not ok 5 - =cute does not end POD
not ok 6 - =cut2 does not end POD
not ok 7 - =cut_ does not end POD
ok 8 - =cut$cene ends POD
ok 9 - did not throw an error
#
Expected behavior
1..9
ok 1 - =cute does not end POD
ok 2 - =cut2 does not end POD
ok 3 - =cut_ does not end POD
ok 4 - =cut$cene ends POD
ok 5 - =cute does not end POD
ok 6 - =cut2 does not end POD
ok 7 - =cut_ does not end POD
ok 8 - =cut$cene ends POD
ok 9 - did not throw an error
#
Perl configuration
This is with v5.40.0, but it should affect all perl versions (except before 5.8.9 the =cute
test will probably fail without eval, too).
Metadata
Metadata
Assignees
Labels
Type
Projects
Milestone
Relationships
Development
Issue actions
You can’t perform that action at this time.