Skip to content

Instantly share code, notes, and snippets.

@PatrickCronin
Last active July 26, 2020 19:25
Show Gist options
  • Save PatrickCronin/dd9a59d224311af84caacc632cdce7f4 to your computer and use it in GitHub Desktop.
Save PatrickCronin/dd9a59d224311af84caacc632cdce7f4 to your computer and use it in GitHub Desktop.
#!/usr/bin/perl
use strict;
use warnings;
# The #__ correspond to the pattern # being tested.
#23: double-quoted terminator, embedded HTML
my @double_quoted_html = (<<"HTML", 1);
<i>some text</i>
HTML
#24: double-quoted terminator, embedded XML
my @DQXML = (<<"XML", 1);
<attr value="3" />
XML
#25: double-quoted terminator, embedded CSS
my @DQCSS = (<<"CSS", 1);
#selector { color: #red; }
CSS
#26: double-quoted terminator, embedded JS
my @DQJS = (<<"JAVASCRIPT", 1);
document.window.x = 200;
JAVASCRIPT
#27: double-quoted terminator, embedded SQL
my @DQSQL = (<<"SQL", 1);
SELECT * FROM the_table WHERE x = ?
SQL
#28: double-quoted terminator, embedded PS
my @DQSQL = (<<"POSTSCRIPT", 1);
what does postscript look like?
POSTSCRIPT
#29: double-quoted terminator.
# Initial terminator scope failing due to incorrect capture to $self
my @DQANY = (<<"OTHER", 1);
abcdefg
OTHER
#30: single-quoted terminator, embedded HTML
my @SQHTML = (<<'HTML', 1);
<i>some text</i>
HTML
#31: single-quoted terminator, embedded XML
my @SQXML = (<<'XML', 1);
<attr value="3" />
XML
#32: single-quoted terminator, embedded CSS
my @SQCSS = (<<'CSS', 1);
#selector { color: #red; }
CSS
#33: single-quoted terminator, embedded JS
my @SQJS = (<<'JAVASCRIPT', 1);
document.window.x = 200;
JAVASCRIPT
#34: single-quoted terminator, embedded SQL
my @SQSQL = (<<'SQL', 1);
SELECT * FROM the_table WHERE x = ?
SQL
#35: single-quoted terminator.
# Initial terminator scope failing due to incorrect capture to $self
my @SQANY = (<<'OTHER', 1);
abcdefg
OTHER
#36: single-quoted terminator
my @DQPS = (<<'POSTSCRIPT', 1);
i don't know what postscript looks like
POSTSCRIPT
#37: unquoted weird delimiters.
# Initial terminator scope failing due to incorrect capture to $self
my @UQWHATISTHISANYWAY = (<<\:::, 1);
some text
:::
#38: back-quoted terminator.
# Initial terminator scope failing due to incorrect capture to $self
my @BTANY = (<<`OTHER`, 1);
./the-program.pl
OTHER
#39: unquoted delimiter, embedded HTML
my @UQHTML = (<<HTML, 1);
<i>some text</i>
HTML
#40: unquoted delimiter, embedded XML
my @UQXML = (<<XML, 1);
<attr value="3" />
XML
#40.x: unquoted delimiter, embedded CSS
my @UQCSS = (<<CSS, 1);
#selector { color: #red; }
CSS
#41: unquoted delimiter, embedded JS
my @UQJS = (<<JAVASCRIPT, 1);
document.window.x = 200;
JAVASCRIPT
#42: unquoted delimiter, embedded SQL
my @UQSQL = (<<SQL, 1);
SELECT * FROM the_table WHERE x = ?
SQL
#43: unquoted delimiter, embedded PS
my @UQPS = (<<POSTSCRIPT, 1);
i don't know what postscript looks like
POSTSCRIPT
#44: unquoted delimiter
my @UQANY = (<<OTHER, 1);
some text
OTHER
#
# Everything below is the same as above, but now as an indented heredoc
#
#23
my @IDQHTML = (<<~"HTML", 1);
<i>some text</i>
HTML
#24
my @IDQXML = (<<~"XML", 1);
<attr value="3" />
XML
#25
my @IDQCSS = (<<~"CSS", 1);
#selector { color: #red; }
CSS
#26
my @IDQJS = (<<~"JAVASCRIPT", 1);
document.window.x = 200;
JAVASCRIPT
#27
my @IDQSQL = (<<~"SQL", 1);
SELECT * FROM the_table WHERE x = ?
SQL
#28
my @IDQSQL = (<<~"POSTSCRIPT", 1);
what does postscript look like?
POSTSCRIPT
#29 - maybe affected by missing $self?
my @IDQANY = (<<~"OTHER", 1);
abcdefg
OTHER
#30
my @ISQHTML = (<<~'HTML', 1);
<i>some text</i>
HTML
#31
my @ISQXML = (<<~'XML', 1);
<attr value="3" />
XML
#32
my @ISQCSS = (<<~'CSS', 1);
#selector { color: #red; }
CSS
#33
my @ISQJS = (<<~'JAVASCRIPT', 1);
document.window.x = 200;
JAVASCRIPT
#34
my @ISQSQL = (<<~'SQL', 1);
SELECT * FROM the_table WHERE x = ?
SQL
#35 - maybe affected by missing $self?
my @ISQANY = (<<~'OTHER', 1);
abcdefg
OTHER
#36
my @IDQPS = (<<~'POSTSCRIPT', 1);
i don't know what postscript looks like
POSTSCRIPT
#37 - maybe affected by missing $self?
my @IUQDOWEREALLYNEEDTHIS = (<<~\:::, 1);
some text
:::
#38 - maybe affected by missing $self?
my @IBTANY = (<<~`OTHER`, 1);
./the-program.pl
OTHER
#39
my @IUQHTML = (<<~HTML, 1);
<i>some text</i>
HTML
#40
my @IUQXML = (<<~XML, 1);
<attr value="3" />
XML
#40.x
my @IUQCSS = (<<~CSS, 1);
#selector { color: #red; }
CSS
#41
my @IUQJS = (<<~JAVASCRIPT, 1);
document.window.x = 200;
JAVASCRIPT
#42
my @IUQSQL = (<<~SQL, 1);
SELECT * FROM the_table WHERE x = ?
SQL
#43
my @IUQPS = (<<~POSTSCRIPT, 1);
i don't know what postscript looks like
POSTSCRIPT
#44
my @IUQANY = (<<~OTHER, 1);
some text
OTHER
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment