Changeset View
Changeset View
Standalone View
Standalone View
autotests/html/highlight.pl6.html
- This file was added.
1 | <!DOCTYPE html> | ||||
---|---|---|---|---|---|
2 | <html><head> | ||||
3 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> | ||||
4 | <title>highlight.pl6</title> | ||||
5 | <meta name="generator" content="KF5::SyntaxHighlighting (Perl6)"/> | ||||
6 | </head><body style="color:#1f1c1b"><pre> | ||||
7 | <span style="font-weight:bold;">#!/usr/bin/perl6</span> | ||||
8 | | ||||
9 | <span style="font-weight:bold;">use</span> v6; | ||||
10 | | ||||
11 | <span style="font-weight:bold;">if</span> <span style="color:#0057ae;">True</span> <span style="font-weight:bold;">{</span> | ||||
12 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">Hello</span><span style="color:#924c9d;">"</span>; | ||||
13 | <span style="font-weight:bold;">}</span> | ||||
14 | | ||||
15 | <span style="font-weight:bold;">if</span> <span style="color:#0057ae;">True</span> <span style="font-weight:bold;">{</span> | ||||
16 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">Hello</span><span style="color:#924c9d;">"</span>; <span style="color:#898887;"># Bad indentation intended</span> | ||||
17 | <span style="font-weight:bold;">}</span> | ||||
18 | | ||||
19 | <span style="font-weight:bold;">if</span> <span style="color:#0057ae;">True</span> <span style="font-weight:bold;">{</span> <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">Hello</span><span style="color:#924c9d;">"</span> <span style="font-weight:bold;">}</span> | ||||
20 | | ||||
21 | <span style="font-weight:bold;">if</span> <span style="color:#0057ae;">True</span> <span style="font-weight:bold;">{say</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">Hello</span><span style="color:#924c9d;">"</span><span style="font-weight:bold;">}</span> | ||||
22 | | ||||
23 | <span style="font-weight:bold;">if</span> <span style="color:#0057ae;">True</span> <span style="font-weight:bold;">{</span> <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">Hello</span><span style="color:#924c9d;">"</span> <span style="font-weight:bold;">}</span> <span style="font-weight:bold;">else</span> <span style="font-weight:bold;">{</span> <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">Goodbye</span><span style="color:#924c9d;">"</span> <span style="font-weight:bold;">}</span>; <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">world</span><span style="color:#924c9d;">"</span>; | ||||
24 | | ||||
25 | <span style="color:#898887;">## </span><span style="color:#0057ae;background-color:#e0e9f8;">BEGIN</span><span style="color:#898887;"> Comments</span> | ||||
26 | | ||||
27 | <span style="font-weight:bold;">say</span> <span style="color:#b08000;">1</span> <span style="color:#898887;">#`( blah </span><span style="color:#ca9219;background-color:#451e1a;font-weight:bold;">TODO</span><span style="color:#898887;"> blah</span> | ||||
28 | <span style="color:#898887;">here? )</span> <span style="color:#b08000;">2</span> ; | ||||
29 | <span style="font-weight:bold;">say</span> <span style="color:#b08000;">1</span> <span style="color:#898887;">#`{{ blah </span><span style="color:#ca9219;background-color:#451e1a;font-weight:bold;">TODO</span><span style="color:#898887;"> blah</span> | ||||
30 | <span style="color:#898887;">here? }}</span> <span style="color:#b08000;">2</span> ; | ||||
31 | <span style="font-weight:bold;">say</span> <span style="color:#b08000;">1</span> <span style="color:#898887;">#`[[ blah </span><span style="color:#ca9219;background-color:#451e1a;font-weight:bold;">TODO</span><span style="color:#898887;"> blah ]</span> | ||||
32 | <span style="color:#898887;">here? ]]</span> <span style="color:#b08000;">2</span> ; | ||||
33 | <span style="font-weight:bold;">say</span> <span style="color:#b08000;">1</span> <span style="color:#898887;">#`««« blah </span><span style="color:#ca9219;background-color:#451e1a;font-weight:bold;">TODO</span><span style="color:#898887;"> blah</span> | ||||
34 | <span style="color:#898887;">here? »»»</span> <span style="color:#b08000;">2</span> ; | ||||
35 | <span style="font-weight:bold;">say</span> <span style="color:#b08000;">1</span> <span style="color:#898887;">#` ( blah </span><span style="color:#ca9219;background-color:#451e1a;font-weight:bold;">TODO</span><span style="color:#898887;"> blah</span> | ||||
36 | <span style="color:#b08000;">2</span> ; | ||||
37 | | ||||
38 | <span style="color:#898887;">#`[</span> | ||||
39 | <span style="color:#898887;"> This is another multi-line comment. ]</span> | ||||
40 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">@sorted</span> <span style="font-weight:bold;">=</span> <span style="color:#0057ae;">@names</span><span style="font-weight:bold;">.</span>sort<span style="font-weight:bold;">({</span> <span style="color:#0057ae;">%sets</span><span style="font-weight:bold;">{</span><span style="color:#0057ae;">$_</span><span style="font-weight:bold;">}</span> <span style="font-weight:bold;">}).</span>sort<span style="font-weight:bold;">({</span> <span style="color:#0057ae;">%matches</span><span style="font-weight:bold;">{</span><span style="color:#0057ae;">$_</span><span style="font-weight:bold;">}</span> <span style="font-weight:bold;">}).</span>reverse; | ||||
41 | <span style="color:#898887;">#`{ So is this, though it's not actually multi-line. }</span> | ||||
42 | | ||||
43 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">code again</span><span style="color:#924c9d;">'</span>; | ||||
44 | | ||||
45 | <span style="color:#898887;">#`( Multiple line comments `( sub-comment )`)</span>` | ||||
46 | | ||||
47 | <span style="color:#898887;">## </span><span style="color:#0057ae;background-color:#e0e9f8;">END</span><span style="color:#898887;"> Comments</span> | ||||
48 | | ||||
49 | <span style="color:#898887;">#`[</span> | ||||
50 | <span style="color:#898887;">And this is how a multi would work.</span> | ||||
51 | <span style="color:#898887;">That says why we do what we do below.</span> | ||||
52 | <span style="color:#898887;">]</span> | ||||
53 | | ||||
54 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">No more</span><span style="color:#924c9d;">"</span>; | ||||
55 | | ||||
56 | <span style="color:#898887;">#`{{a}a}}</span> <span style="font-weight:bold;">say</span> ok | ||||
57 | | ||||
58 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">No more</span><span style="color:#924c9d;">"</span>; | ||||
59 | | ||||
60 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">this is code</span><span style="color:#924c9d;">"</span>; | ||||
61 | | ||||
62 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">begin</span> <span style="color:#0095ff;">pod</span> | ||||
63 | | ||||
64 | <span style="color:#607880;">A very simple Pod6 document</span> | ||||
65 | | ||||
66 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">end</span> <span style="color:#0095ff;">pod</span> | ||||
67 | | ||||
68 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">begin</span> <span style="color:#0095ff;">head1</span> | ||||
69 | <span style="color:#607880;">Top Level Heading</span> | ||||
70 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">end</span> <span style="color:#0095ff;">head1</span> | ||||
71 | | ||||
72 | <span style="color:#607880;">=</span><span style="color:#ca60ca;">head1</span><span style="color:#0095ff;"> Top level heading</span> | ||||
73 | | ||||
74 | <span style="color:#607880;">=</span><span style="color:#ca60ca;">for</span> <span style="color:#ca60ca;">head1</span> | ||||
75 | <span style="color:#0095ff;">Top Level Heading</span> | ||||
76 | | ||||
77 | <span style="color:#607880;">=</span><span style="color:#bf0303;text-decoration:underline;">cutsdads</span> | ||||
78 | | ||||
79 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">begin</span> <span style="color:#0095ff;">pod</span> | ||||
80 | | ||||
81 | <span style="color:#607880;">=</span><span style="color:#ca60ca;">head1</span><span style="color:#0095ff;"> This is a head1 title</span> | ||||
82 | | ||||
83 | <span style="color:#607880;">This is a paragraph.</span> | ||||
84 | | ||||
85 | <span style="color:#607880;">=</span><span style="color:#ca60ca;">head2</span><span style="color:#0095ff;"> Subsection</span> | ||||
86 | <span style="color:#0095ff;"># plop</span> | ||||
87 | <span style="color:#0095ff;">Here some text for the subsection.</span> | ||||
88 | | ||||
89 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">end</span> <span style="color:#0095ff;">pod</span> | ||||
90 | | ||||
91 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">begin</span> <span style="color:#0095ff;">table</span> :<span style="color:#0057ae;">caption</span><<span style="color:#0095ff;">My Tasks</span>> | ||||
92 | <span style="color:#607880;">mow lawn</span> | ||||
93 | <span style="color:#607880;">take out trash</span> | ||||
94 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">end</span> <span style="color:#0095ff;">table</span> | ||||
95 | | ||||
96 | <span style="color:#607880;">=</span><span style="color:#ca60ca;">head1</span><span style="color:#0095ff;"> This is a heading block</span> | ||||
97 | <span style="color:#0095ff;">This is an ordinary paragraph.</span> | ||||
98 | <span style="color:#0095ff;">Its text will be squeezed and</span> | ||||
99 | <span style="color:#0095ff;">short lines filled. It is terminated by</span> | ||||
100 | <span style="color:#0095ff;">the first blank line.</span> | ||||
101 | | ||||
102 | <span style="color:#607880;">=</span><span style="color:#ca60ca;">head2</span><span style="color:#0095ff;"> This is another heading block</span> | ||||
103 | <span style="color:#0095ff;">This is yet another ordinary paragraph,</span> | ||||
104 | <span style="color:#0095ff;">at the first virtual column set by the</span> | ||||
105 | <span style="color:#0095ff;">previous directive</span> | ||||
106 | | ||||
107 | <span style="color:#898887;">#</span>|<span style="color:#898887;"> Base class for magicians</span> | ||||
108 | <span style="font-weight:bold;">class</span> <span style="color:#0057ae;">Magician</span> <span style="font-weight:bold;">{</span> | ||||
109 | <span style="font-weight:bold;">has</span> <span style="color:#0057ae;">Int</span> <span style="color:#0057ae;">$.level</span>; | ||||
110 | <span style="font-weight:bold;">has</span> <span style="color:#0057ae;">Str</span> @<span style="font-weight:bold;">.</span>spells; | ||||
111 | <span style="font-weight:bold;">}</span> | ||||
112 | | ||||
113 | <span style="color:#898887;">#</span>|<span style="color:#898887;"> Fight mechanics</span> | ||||
114 | <span style="color:#644a9b;font-weight:bold;">sub</span> duel<span style="font-weight:bold;">(</span><span style="color:#0057ae;">Magician</span> <span style="color:#0057ae;">$a</span><span style="font-weight:bold;">,</span> <span style="color:#0057ae;">Magician</span> <span style="color:#0057ae;">$b</span><span style="font-weight:bold;">)</span> <span style="font-weight:bold;">{</span> | ||||
115 | <span style="font-weight:bold;">}</span> | ||||
116 | <span style="color:#898887;">#</span>=<span style="color:#898887;">«<((</span> | ||||
117 | <span style="color:#898887;"> <Magicians only, no mortals. ></span> | ||||
118 | <span style="color:#898887;"> Magicians only, no mortals.</span> | ||||
119 | <span style="color:#898887;">))>»</span> | ||||
120 | | ||||
121 | <span style="font-weight:bold;">say</span> <span style="color:#0057ae;">Magician</span><span style="font-weight:bold;">.</span>WHY; | ||||
122 | | ||||
123 | <span style="color:#898887;">#</span>|<span style="color:#898887;"><< This is an example of stringification:</span> | ||||
124 | <span style="color:#898887;"> * Numbers turn into strings</span> | ||||
125 | <span style="color:#898887;"> > * Regexes operate on said strings</span> | ||||
126 | <span style="color:#898887;"> * C<with> topicalizes and places result into $_</span> | ||||
127 | <span style="color:#898887;">>></span> | ||||
128 | <span style="color:#644a9b;font-weight:bold;">sub</span> search-in-seq<span style="font-weight:bold;">(</span> <span style="color:#0057ae;">Int</span> <span style="color:#0057ae;">$end</span><span style="font-weight:bold;">,</span> <span style="color:#0057ae;">Int</span> <span style="color:#0057ae;">$number</span> <span style="font-weight:bold;">)</span> <span style="font-weight:bold;">{</span> | ||||
129 | with <span style="font-weight:bold;">(^</span><span style="color:#0057ae;">$end</span><span style="font-weight:bold;">).</span>grep<span style="font-weight:bold;">(</span> <span style="font-weight:bold;">/^</span><span style="color:#0057ae;">$number</span><span style="font-weight:bold;">/</span> <span style="font-weight:bold;">)</span> <span style="font-weight:bold;">{</span> | ||||
130 | <span style="font-weight:bold;">.say</span> <span style="font-weight:bold;">for</span> <span style="color:#0057ae;">$_</span><span style="color:#924c9d;"><></span>; | ||||
131 | <span style="font-weight:bold;">}</span> | ||||
132 | <span style="font-weight:bold;">}</span> | ||||
133 | <span style="color:#898887;">#</span>=<span style="color:#898887;"> Uses * topic * decont operator</span> | ||||
134 | | ||||
135 | | ||||
136 | <span style="color:#607880;">=</span><span style="color:#ca60ca;">head1</span><span style="color:#0095ff;"> plop</span> | ||||
137 | <span style="color:#0095ff;">abc</span> | ||||
138 | | ||||
139 | <span style="color:#607880;">=</span><span style="color:#ca60ca;">head1</span><span style="color:#0095ff;"> plop</span> | ||||
140 | <span style="color:#607880;">=</span><span style="color:#ca60ca;">para</span> | ||||
141 | <span style="color:#0095ff;">abc</span> | ||||
142 | | ||||
143 | <span style="color:#607880;">=</span><span style="color:#ca60ca;">head1</span><span style="color:#0095ff;"> plop</span> | ||||
144 | <span style="color:#0095ff;">abc</span> | ||||
145 | <span style="color:#0095ff;">abc</span> | ||||
146 | | ||||
147 | <span style="color:#607880;">=</span><span style="color:#ca60ca;">head1</span><span style="color:#0095ff;"> plop</span> | ||||
148 | <span style="color:#0095ff;">abc</span> | ||||
149 | | ||||
150 | <span style="font-weight:bold;">say</span> <span style="color:#b08000;">1</span>; | ||||
151 | | ||||
152 | <span style="color:#607880;">=</span><span style="color:#ca60ca;">head1</span><span style="color:#0095ff;"> plop</span> | ||||
153 | | ||||
154 | <span style="font-weight:bold;">say</span> <span style="color:#b08000;">1</span>; | ||||
155 | | ||||
156 | <span style="color:#607880;">=</span><span style="color:#ca60ca;">for</span> <span style="color:#ca60ca;">head1</span> | ||||
157 | <span style="color:#0095ff;">plop</span> | ||||
158 | | ||||
159 | <span style="color:#607880;">=</span><span style="color:#ca60ca;">for</span> <span style="color:#ca60ca;">table</span> :<span style="color:#0057ae;">conf</span>[<span style="color:#0095ff;">str</span>,<span style="color:#0095ff;"> </span><span style="color:#bf0303;">'str</span><span style="color:#924c9d;">'</span>,<span style="color:#0095ff;"> </span><span style="color:#bf0303;">"str</span><span style="color:#924c9d;">"</span>,<span style="color:#0095ff;"> </span><span style="color:#b08000;">1</span>,<span style="color:#0095ff;"> </span><span style="color:#0057ae;">True</span>] :<span style="color:#0057ae;">conf</span>(<span style="color:#0095ff;">str</span>,<span style="color:#0095ff;"> </span><span style="color:#bf0303;">'str</span><span style="color:#924c9d;">'</span>,<span style="color:#0095ff;"> </span><span style="color:#bf0303;">"str</span><span style="color:#924c9d;">"</span>,<span style="color:#0095ff;"> </span><span style="color:#b08000;">1</span>,<span style="color:#0095ff;"> </span><span style="color:#0057ae;">True</span>) | ||||
160 | <span style="color:#607880;">=</span><span style="color:#ca60ca;">for</span> <span style="color:#ca60ca;">table</span> :<span style="color:#0057ae;">conf</span><<span style="color:#0095ff;">str </span><span style="color:#bf0303;">'str</span><span style="color:#924c9d;">'</span><span style="color:#0095ff;"> </span><span style="color:#bf0303;">"str</span><span style="color:#924c9d;">"</span><span style="color:#0095ff;"> </span><span style="color:#b08000;">1</span><span style="color:#0095ff;"> </span><span style="color:#0057ae;">True</span>> | ||||
161 | <span style="color:#607880;">=</span><span style="color:#ca60ca;">for</span> <span style="color:#ca60ca;">table</span> :<span style="color:#0057ae;">conf</span>{<span style="color:#0095ff;">k </span>=><span style="color:#0095ff;"> str</span>,<span style="color:#0095ff;"> k</span>=><span style="color:#bf0303;">'str</span><span style="color:#924c9d;">'</span>,<span style="color:#0095ff;"> k</span>=><span style="color:#bf0303;">"str</span><span style="color:#924c9d;">"</span>,<span style="color:#0095ff;"> k</span>=><span style="color:#b08000;">1</span>,<span style="color:#0095ff;"> k</span>=><span style="color:#0057ae;">True</span>} | ||||
162 | <span style="color:#607880;">=</span><span style="color:#ca60ca;">for</span> <span style="color:#ca60ca;">table</span> :<span style="color:#0057ae;">a</span> :!<span style="color:#0057ae;">b</span> :<span style="color:#b08000;">42</span><span style="color:#0057ae;">k</span> :<span style="color:#bf0303;text-decoration:underline;">+s</span> | ||||
163 | <span style="color:#0095ff;">abc</span> | ||||
164 | | ||||
165 | <span style="font-weight:bold;">say</span> <span style="color:#b08000;">2</span>; | ||||
166 | | ||||
167 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">begin</span> <span style="color:#0095ff;">a</span> | ||||
168 | <span style="color:#607880;">abc</span> | ||||
169 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">end</span> <span style="color:#0095ff;">a</span> | ||||
170 | | ||||
171 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">begin</span> <span style="color:#0095ff;">b</span> <span style="color:#bf0303;text-decoration:underline;">sa</span> | ||||
172 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">end</span> <span style="color:#0095ff;">b</span> | ||||
173 | <span style="font-weight:bold;">say</span> <span style="color:#b08000;">2</span>; | ||||
174 | | ||||
175 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">begin</span> <span style="color:#0095ff;">a</span> | ||||
176 | <span style="color:#607880;">abc</span> | ||||
177 | | ||||
178 | <span style="color:#607880;">abc</span> | ||||
179 | | ||||
180 | <span style="color:#607880;">abc</span> | ||||
181 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">end</span> <span style="color:#0095ff;">a</span> | ||||
182 | <span style="font-weight:bold;">say</span> <span style="color:#b08000;">0</span> ; | ||||
183 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">begin</span> <span style="color:#0095ff;">a</span>:<span style="color:#0057ae;">config</span>{<span style="color:#b08000;">42</span>} | ||||
184 | <span style="color:#607880;">abc</span> | ||||
185 | | ||||
186 | <span style="color:#607880;">=</span><span style="color:#ca60ca;">head1</span><span style="color:#0095ff;"> The</span> | ||||
187 | <span style="color:#0095ff;">Title</span> | ||||
188 | | ||||
189 | <span style="color:#607880;">abc</span> | ||||
190 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">end</span><span style="color:#bf0303;text-decoration:underline;"> ab</span> | ||||
191 | <span style="font-weight:bold;">say</span> <span style="color:#b08000;">1</span> ; | ||||
192 | | ||||
193 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">begin</span> <span style="color:#0095ff;">b</span> <span style="color:#bf0303;text-decoration:underline;">sa</span> | ||||
194 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">end</span> <span style="color:#0095ff;">b</span> | ||||
195 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">begin</span> <span style="color:#0095ff;">a</span> | ||||
196 | <span style="color:#607880;">abc</span> | ||||
197 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">begin</span> <span style="color:#0095ff;">b</span> | ||||
198 | <span style="color:#607880;">abc</span> | ||||
199 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">end</span> <span style="color:#0095ff;">b</span><span style="color:#bf0303;text-decoration:underline;"> a</span> | ||||
200 | <span style="color:#607880;">abc</span> | ||||
201 | | ||||
202 | <span style="color:#607880;">abc</span> | ||||
203 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">end</span> <span style="color:#0095ff;">a</span> | ||||
204 | <span style="font-weight:bold;">say</span> <span style="color:#b08000;">3</span> ; | ||||
205 | | ||||
206 | <span style="color:#607880;">=</span><span style="color:#ca60ca;">item</span><span style="color:#0095ff;"> a</span> | ||||
207 | <span style="color:#607880;">=</span><span style="color:#ca60ca;">item</span><span style="color:#0095ff;"> b</span> | ||||
208 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">begin</span> <span style="color:#0095ff;">code</span> | ||||
209 | <span style="color:#b08000;"> =item a</span> | ||||
210 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">end</span> <span style="color:#0095ff;">code</span> | ||||
211 | | ||||
212 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">begin</span> <span style="color:#0095ff;">code</span> | ||||
213 | <span style="color:#b08000;"> =item a</span> | ||||
214 | <span style="color:#b08000;"> b</span> | ||||
215 | <span style="color:#b08000;">=end code d</span> | ||||
216 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">end</span> <span style="color:#0095ff;">code</span> | ||||
217 | | ||||
218 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">begin</span> <span style="color:#0095ff;">comment</span> | ||||
219 | <span style="color:#898887;">Here are several</span> | ||||
220 | <span style="color:#898887;">lines</span> | ||||
221 | <span style="color:#898887;">of comment</span> | ||||
222 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">end</span> <span style="color:#0095ff;">comment</span> | ||||
223 | | ||||
224 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">begin</span> <span style="color:#0095ff;">pod</span> | ||||
225 | <span style="color:#607880;">=</span><span style="color:#ca60ca;">head1</span><span style="color:#0095ff;"> ac</span><span style="color:#607880;font-weight:bold;">B<<</span><span style="color:#607880;font-style:italic;">I<a></span><span style="color:#607880;font-weight:bold;">>></span><span style="color:#0095ff;">a </span><span style="color:#607880;font-weight:bold;">B<c></span><span style="color:#0095ff;"> </span><span style="color:#607880;text-decoration:underline;">U<d></span><span style="color:#0095ff;"> B</span><span style="color:#607880;font-weight:bold;">B<a></span> | ||||
226 | | ||||
227 | <span style="color:#b08000;">C<my $var = 1; say $var;></span> | ||||
228 | <span style="color:#607880;">Perl 6 homepage </span><span style="color:#006e28;text-decoration:underline;">L<https://perl6.org></span><span style="color:#607880;"> </span><span style="color:#006e28;text-decoration:underline;">L<Perl 6 homepage</span>|<span style="color:#006e28;text-decoration:underline;">https://perl6.org></span> | ||||
229 | <span style="color:#607880;">Comments </span><span style="color:#006e28;text-decoration:underline;">L<#Comments></span><span style="color:#607880;"> </span><span style="color:#006e28;text-decoration:underline;">L<Comments</span>|<span style="color:#006e28;text-decoration:underline;">#Comments></span> | ||||
230 | <span style="color:#607880;">Perl 6 is awesome </span><span style="color:#898887;">Z<Of course it is!></span> | ||||
231 | <span style="color:#607880;">Perl 6 is multi-paradigmatic </span><span style="color:#b08000;">N<Supporting Procedural, Object Oriented, and Functional programming></span> | ||||
232 | <span style="color:#607880;">Enter your name </span><span style="color:#b08000;">K<John Doe></span><span style="color:#607880;"> </span><span style="color:#924c9d;">E<0xBB></span><span style="color:#607880;"> characters.</span> | ||||
233 | | ||||
234 | <span style="color:#607880;">A </span><span style="color:#006e28;">X<</span><span style="color:#006e28;text-decoration:underline;">hash</span>|<span style="color:#006e28;text-decoration:underline;">hashes</span>,<span style="color:#006e28;text-decoration:underline;"> definition of</span>;<span style="color:#006e28;text-decoration:underline;"> associative arrays</span><span style="color:#006e28;">></span> | ||||
235 | | ||||
236 | <span style="color:#607880;">=</span><span style="color:#ca60ca;">DISCLAIMER</span> | ||||
237 | <span style="color:#006e28;text-decoration:underline;">P<http://www.MegaGigaTeraPetaCorp.com/std/disclaimer.txt></span> | ||||
238 | | ||||
239 | <span style="color:#607880;">A </span><span style="color:#006e28;">X<</span><span style="color:#006e28;text-decoration:underline;">hash</span>|<span style="color:#006e28;text-decoration:underline;">hashes</span>,<span style="color:#006e28;text-decoration:underline;"> definition of</span>;<span style="color:#006e28;text-decoration:underline;"> associative arrays</span><span style="color:#006e28;">></span> | ||||
240 | <span style="color:#607880;">is an unordered collection of scalar values indexed by their</span> | ||||
241 | <span style="color:#607880;">associated string key.</span> | ||||
242 | | ||||
243 | <span style="color:#607880;"> my @names = <Foo Bar Baz>;</span> | ||||
244 | <span style="color:#607880;"> my @upper-case-names = @names.map: { .uc } # OUTPUT: [FOO BAR BAZ]</span> | ||||
245 | | ||||
246 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">end</span> <span style="color:#0095ff;">pod</span> | ||||
247 | | ||||
248 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">begin</span> <span style="color:#0095ff;">table</span> :<span style="color:#0057ae;">caption</span><<span style="color:#0095ff;">My Tasks</span>> | ||||
249 | <span style="color:#607880;">mow lawn</span> | ||||
250 | <span style="color:#607880;">take out trash</span> | ||||
251 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">end</span> <span style="color:#0095ff;">table</span> | ||||
252 | | ||||
253 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">begin</span> <span style="color:#0095ff;">table</span> :<span style="color:#0057ae;">config</span>{<span style="color:#0095ff;">caption </span>=><span style="color:#0095ff;"> </span><span style="color:#bf0303;">"My Tasks</span><span style="color:#924c9d;">"</span>} | ||||
254 | <span style="color:#607880;">mow lawn</span> | ||||
255 | <span style="color:#607880;">take out trash</span> | ||||
256 | <span style="color:#607880;">=</span><span style="color:#0057ae;background-color:#e0e9f8;">end</span> <span style="color:#0095ff;">table</span> | ||||
257 | | ||||
258 | | ||||
259 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#924c9d;">\c999</span><span style="color:#bf0303;"> </span><span style="color:#924c9d;">\c999999</span><span style="color:#bf0303;text-decoration:underline;">9</span><span style="color:#bf0303;">99 </span><span style="color:#924c9d;">\c[LATIN CAPITAL LETTER A</span>,<span style="color:#924c9d;"> LATIN CAPITAL LETTER B]</span><span style="color:#bf0303;"> </span><span style="color:#924c9d;">\c77</span><span style="color:#bf0303;">s </span><span style="color:#924c9d;">\c[77</span>,<span style="color:#924c9d;">22]</span><span style="color:#924c9d;">"</span>; | ||||
260 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#924c9d;">\x0</span><span style="color:#bf0303;"> </span><span style="color:#924c9d;">\x00</span><span style="color:#bf0303;"> </span><span style="color:#924c9d;">\x[0]</span><span style="color:#bf0303;"> </span><span style="color:#924c9d;">\x[00]</span><span style="color:#bf0303;"> </span><span style="color:#924c9d;">\x[f]</span><span style="color:#bf0303;"> </span><span style="color:#924c9d;">\xaaa</span><span style="color:#bf0303;"> </span><span style="color:#924c9d;">\xfffff</span><span style="color:#bf0303;text-decoration:underline;">f</span><span style="color:#bf0303;">f </span><span style="color:#924c9d;">\xff</span><span style="color:#bf0303;">h </span><span style="color:#924c9d;">\x[ffff]</span><span style="color:#bf0303;"> </span><span style="color:#924c9d;">\x[fffff</span><span style="color:#bf0303;text-decoration:underline;">ff</span><span style="color:#924c9d;">]</span><span style="color:#bf0303;"> </span><span style="color:#924c9d;">\x[42</span>,<span style="color:#924c9d;">42]</span><span style="color:#924c9d;">"</span>; | ||||
261 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#924c9d;">\o0</span><span style="color:#bf0303;"> </span><span style="color:#924c9d;">\o00</span><span style="color:#bf0303;"> </span><span style="color:#924c9d;">\o[0]</span><span style="color:#bf0303;"> </span><span style="color:#924c9d;">\o[00]</span><span style="color:#bf0303;"> </span><span style="color:#924c9d;">\o[7]</span><span style="color:#bf0303;"> </span><span style="color:#924c9d;">\o333</span><span style="color:#bf0303;"> </span><span style="color:#924c9d;">\o777777</span><span style="color:#bf0303;text-decoration:underline;">7</span><span style="color:#bf0303;">7 </span><span style="color:#924c9d;">\o77</span><span style="color:#bf0303;">h </span><span style="color:#924c9d;">\o[333]</span><span style="color:#bf0303;"> </span><span style="color:#924c9d;">\o[777777</span><span style="color:#bf0303;text-decoration:underline;">77</span><span style="color:#924c9d;">]</span><span style="color:#bf0303;"> </span><span style="color:#924c9d;">\o[42</span>,<span style="color:#924c9d;">42]</span><span style="color:#924c9d;">"</span>; | ||||
262 | | ||||
263 | <span style="font-weight:bold;">say</span> <span style="color:#bf0303;">Q</span><span style="color:#924c9d;">[</span><span style="color:#bf0303;">A literal string</span><span style="color:#924c9d;">]</span> ; | ||||
264 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">「</span><span style="color:#bf0303;">More plainly.</span><span style="color:#924c9d;">」</span> ; | ||||
265 | <span style="font-weight:bold;">say</span> <span style="color:#bf0303;">Q </span><span style="color:#924c9d;">^</span><span style="color:#bf0303;">Almost any non-word character can be a delimiter!</span><span style="color:#924c9d;">^</span> ; | ||||
266 | <span style="font-weight:bold;">say</span> <span style="color:#bf0303;">Q </span><span style="color:#924c9d;">「「</span><span style="color:#bf0303;">Delimiters can be repeated/nested if they are adjacent.</span><span style="color:#924c9d;">」」</span> ; | ||||
267 | | ||||
268 | <span style="font-weight:bold;">say</span> <span style="color:#bf0303;">Q </span><span style="color:#924c9d;">(</span><span style="color:#bf0303;">this is fine, because of space after Q</span><span style="color:#924c9d;">)</span> ; | ||||
269 | <span style="font-weight:bold;">say</span> <span style="color:#bf0303;">Q </span><span style="color:#924c9d;">'</span><span style="color:#bf0303;">and so is this</span><span style="color:#924c9d;">'</span> ; | ||||
270 | <span style="font-weight:bold;">say</span> <span style="color:#bf0303;">Q</span><span style="color:#924c9d;"><</span><span style="color:#bf0303;">Make sure you </span><span style="color:#924c9d;"><</span><span style="color:#bf0303;">match</span><span style="color:#924c9d;">></span><span style="color:#bf0303;"> opening and closing delimiters</span><span style="color:#924c9d;">></span> ; | ||||
271 | <span style="font-weight:bold;">say</span> <span style="color:#bf0303;">Q</span><span style="color:#924c9d;">{</span><span style="color:#bf0303;">This is still a closing curly brace → \</span><span style="color:#924c9d;">}</span> ; | ||||
272 | | ||||
273 | <span style="font-weight:bold;">say</span> <span style="color:#bf0303;">Q</span><span style="color:#924c9d;">;</span><span style="color:#bf0303;">yes, this is fine</span><span style="color:#924c9d;">;</span> ; | ||||
274 | <span style="font-weight:bold;">say</span> Q('this is a function') ; | ||||
275 | | ||||
276 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">Very plain</span><span style="color:#924c9d;">'</span>; | ||||
277 | <span style="font-weight:bold;">say</span> <span style="font-weight:bold;">q</span><span style="color:#924c9d;">[</span><span style="color:#bf0303;">This back\slash stays</span><span style="color:#924c9d;">]</span>; | ||||
278 | <span style="font-weight:bold;">say</span> <span style="font-weight:bold;">q</span><span style="color:#924c9d;">[</span><span style="color:#bf0303;">This back</span><span style="color:#924c9d;">\\</span><span style="color:#bf0303;">slash stays</span><span style="color:#924c9d;">]</span>; <span style="color:#898887;"># Identical output</span> | ||||
279 | <span style="font-weight:bold;">say</span> <span style="font-weight:bold;">q</span><span style="color:#924c9d;">{</span><span style="color:#bf0303;">This is not a closing curly brace → </span><span style="color:#924c9d;">\}</span><span style="color:#bf0303;">, but this is → </span><span style="color:#924c9d;">}</span>; | ||||
280 | <span style="font-weight:bold;">say</span> <span style="color:#bf0303;">Q </span><span style="font-weight:bold;">:q</span><span style="color:#bf0303;"> </span><span style="color:#924c9d;">$</span><span style="color:#bf0303;">There are no backslashes here, only lots of </span><span style="color:#924c9d;">\$\$\$</span><span style="color:#bf0303;">>!</span><span style="color:#924c9d;">$</span>; | ||||
281 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">(Just kidding. There</span><span style="color:#924c9d;">\'</span><span style="color:#bf0303;">s no money in that string)</span><span style="color:#924c9d;">'</span>; | ||||
282 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">No $interpolation {here}!</span><span style="color:#924c9d;">'</span>; | ||||
283 | <span style="font-weight:bold;">say</span> <span style="color:#bf0303;">Q</span><span style="font-weight:bold;">:q</span><span style="color:#924c9d;">!</span><span style="color:#bf0303;">Just a literal "\n" here</span><span style="color:#924c9d;">!</span>; | ||||
284 | <span style="font-weight:bold;">say</span> <span style="color:#bf0303;">Q</span><span style="font-weight:bold;">:q</span><span style="color:#924c9d;">[</span><span style="color:#bf0303;">a</span><span style="color:#924c9d;">\[</span><span style="color:#924c9d;">]</span> | ||||
285 | <span style="font-weight:bold;">say</span> <span style="color:#bf0303;">Q</span><span style="color:#924c9d;">[</span><span style="color:#bf0303;">A literal string</span><span style="color:#924c9d;">]</span> ; | ||||
286 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">「</span><span style="color:#bf0303;">More plainly.</span><span style="color:#924c9d;">」</span> ; | ||||
287 | <span style="font-weight:bold;">say</span> <span style="color:#bf0303;">Q </span><span style="color:#924c9d;">^</span><span style="color:#bf0303;">Almost any non-word character can be a delimiter!</span><span style="color:#924c9d;">^</span> ; | ||||
288 | <span style="font-weight:bold;">say</span> <span style="color:#bf0303;">Q </span><span style="color:#924c9d;">「「</span><span style="color:#bf0303;">Delimiters can be repeated/nested if they are adjacent.</span><span style="color:#924c9d;">」」</span> ; | ||||
289 | | ||||
290 | <span style="font-weight:bold;">say</span> <span style="font-weight:bold;">qq</span><span style="color:#924c9d;">[</span><span style="color:#bf0303;">My favorite color is </span><span style="color:#bf0303;">{</span><span style="color:#0057ae;">$n</span><span style="font-weight:bold;">+</span><span style="color:#b08000;">2</span><span style="color:#bf0303;">}</span><span style="color:#bf0303;">!</span><span style="color:#924c9d;">]</span>; | ||||
291 | <span style="font-weight:bold;">say</span> <span style="font-weight:bold;">qq</span><span style="color:#924c9d;">{</span><span style="color:#bf0303;">My favorite color</span><span style="color:#924c9d;">\-</span><span style="color:#bf0303;"> is </span><span style="color:#924c9d;">{</span><span style="color:#0057ae;">$n</span><span style="color:#bf0303;">+2</span><span style="color:#924c9d;">}</span><span style="color:#bf0303;">!</span><span style="color:#924c9d;">}</span>; | ||||
292 | <span style="font-weight:bold;">say</span> <span style="color:#bf0303;">Q</span><span style="font-weight:bold;">:qq</span><span style="color:#924c9d;">{</span><span style="color:#bf0303;">My favorite color</span><span style="color:#924c9d;">\-</span><span style="color:#bf0303;"> is </span><span style="color:#924c9d;">{</span><span style="color:#0057ae;">$n</span><span style="color:#bf0303;">+2</span><span style="color:#924c9d;">}</span><span style="color:#bf0303;">!</span><span style="color:#924c9d;">}</span>; | ||||
293 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">My </span><span style="color:#0057ae;">$color</span><span style="color:#644a9b;">[</span><span style="color:#b08000;">0</span><span style="color:#644a9b;">]</span><span style="color:#bf0303;">.uc(</span> | ||||
294 | <span style="color:#bf0303;">) </span><span style="color:#0057ae;">$n</span><span style="color:#bf0303;">+</span><span style="color:#0057ae;">$n</span><span style="color:#bf0303;">.^name favorite color </span><span style="font-weight:bold;">\q</span><span style="color:#924c9d;">[</span><span style="color:#bf0303;">1is</span><span style="color:#924c9d;">]</span><span style="color:#bf0303;"> </span><span style="color:#bf0303;">{</span><span style="color:#0057ae;">$n</span><span style="font-weight:bold;">+</span><span style="color:#b08000;">2</span><span style="color:#bf0303;">}</span><span style="color:#bf0303;">!abc</span><span style="color:#644a9b;">&uc(</span><span style="color:#924c9d;">'</span><span style="color:#bf0303;">a</span><span style="color:#924c9d;">'</span><span style="color:#644a9b;">)</span><span style="color:#924c9d;">"</span>; | ||||
295 | | ||||
296 | <span style="font-weight:bold;">say</span> <span style="font-weight:bold;">qqww</span><span style="color:#924c9d;">|</span><span style="color:#bf0303;">a</span><span style="color:#924c9d;">|</span>; | ||||
297 | <span style="font-weight:bold;">say</span> <span style="font-weight:bold;">qq:w:w</span><span style="color:#924c9d;">|</span><span style="color:#bf0303;">a</span><span style="color:#924c9d;">|</span>; | ||||
298 | <span style="font-weight:bold;">say</span> <span style="font-weight:bold;">q:a:v</span><span style="color:#924c9d;">|</span><span style="color:#bf0303;">a</span><span style="color:#924c9d;">|</span>; | ||||
299 | | ||||
300 | <span style="font-weight:bold;">say(qq:to</span><span style="color:#924c9d;">/TERM INATOR/</span><span style="color:#bf0303;">, 1+1);</span> | ||||
301 | <span style="color:#bf0303;"> blah blah</span> | ||||
302 | <span style="color:#bf0303;"> </span><span style="color:#924c9d;">TERM INATOR</span> | ||||
303 | | ||||
304 | | ||||
305 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">$don't-do-that</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">1</span>; | ||||
306 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">$piece_of_π</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">3.14</span>; | ||||
307 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">$駱駝道</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">1</span>; | ||||
308 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">$lexical</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">1</span>; | ||||
309 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">$*dynamic1</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">10</span>; | ||||
310 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">$*dynamic2</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">100</span>; | ||||
311 | | ||||
312 | <span style="color:#644a9b;font-weight:bold;">sub</span> say-all<span style="font-weight:bold;">()</span> <span style="font-weight:bold;">{</span> | ||||
313 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#0057ae;">$lexical</span><span style="color:#bf0303;">, </span><span style="color:#0057ae;">$</span><span style="color:#0057ae;">*</span><span style="color:#0057ae;">dynamic1</span><span style="color:#bf0303;">, </span><span style="color:#0057ae;">$</span><span style="color:#0057ae;">*</span><span style="color:#0057ae;">dynamic2</span><span style="color:#924c9d;">"</span>; | ||||
314 | <span style="font-weight:bold;">}</span> | ||||
315 | | ||||
316 | say-all<span style="font-weight:bold;">()</span>; | ||||
317 | | ||||
318 | <span style="font-weight:bold;">{</span> | ||||
319 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">$lexical</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">2</span>; | ||||
320 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">$*dynamic1</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">11</span>; | ||||
321 | <span style="color:#0057ae;">$*dynamic2</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">101</span>; | ||||
322 | <span style="font-weight:bold;">}</span> | ||||
323 | | ||||
324 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">$square</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">9</span> <span style="font-weight:bold;">**</span> <span style="color:#b08000;">2</span>; | ||||
325 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">@array</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">1</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">2</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">3</span>; <span style="color:#898887;"># Array variable with three elements</span> | ||||
326 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">%hash</span> <span style="font-weight:bold;">=</span> <span style="color:#0057ae;">London</span> <span style="font-weight:bold;">=></span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">UK</span><span style="color:#924c9d;">'</span><span style="font-weight:bold;">,</span> <span style="color:#0057ae;">Berlin</span> <span style="font-weight:bold;">=></span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">Germany</span><span style="color:#924c9d;">'</span>; | ||||
327 | | ||||
328 | <span style="font-weight:bold;">class</span> <span style="color:#0057ae;">FailHash</span> <span style="font-weight:bold;">is</span> <span style="color:#0057ae;">Hash</span> <span style="font-weight:bold;">{</span> | ||||
329 | <span style="font-weight:bold;">has</span> <span style="color:#0057ae;">Bool</span> <span style="color:#0057ae;">$!final</span> <span style="font-weight:bold;">=</span> <span style="color:#0057ae;">False</span>; | ||||
330 | <span style="color:#644a9b;font-weight:bold;">multi</span> <span style="color:#644a9b;font-weight:bold;">method</span> AT-KEY <span style="font-weight:bold;">(</span> <span style="color:#0057ae;">::?CLASS</span><span style="font-weight:bold;">:</span><span style="color:#0057ae;">D</span><span style="font-weight:bold;">:</span> <span style="color:#0057ae;">Str</span><span style="font-weight:bold;">:</span><span style="color:#0057ae;">D</span> <span style="color:#0057ae;">\key</span> <span style="font-weight:bold;">){</span> | ||||
331 | <span style="font-weight:bold;">fail</span> <span style="font-weight:bold;">X::</span><span style="color:#0057ae;">OutOfRange</span><span style="font-weight:bold;">.</span>new<span style="font-weight:bold;">(:</span><span style="color:#0057ae;">what</span><span style="font-weight:bold;">(</span><span style="color:#924c9d;">"</span><span style="color:#bf0303;">Hash key</span><span style="color:#924c9d;">"</span><span style="font-weight:bold;">),</span> <span style="font-weight:bold;">:</span><span style="color:#0057ae;">got</span><span style="font-weight:bold;">(</span>key<span style="font-weight:bold;">),</span> | ||||
332 | <span style="font-weight:bold;">:</span><span style="color:#0057ae;">range</span><span style="font-weight:bold;">(</span><span style="font-weight:bold;">self</span><span style="font-weight:bold;">.</span>keys<span style="font-weight:bold;">))</span> <span style="font-weight:bold;">if</span> <span style="color:#0057ae;">$!final</span> <span style="font-weight:bold;">&&</span> <span style="font-weight:bold;">!</span><span style="font-weight:bold;">self</span><span style="font-weight:bold;">.</span>EXISTS-KEY<span style="font-weight:bold;">(</span>key<span style="font-weight:bold;">)</span>; | ||||
333 | callsame | ||||
334 | <span style="font-weight:bold;">}</span> | ||||
335 | | ||||
336 | <span style="color:#644a9b;font-weight:bold;">method</span> finalize<span style="font-weight:bold;">()</span> <span style="font-weight:bold;">{</span> | ||||
337 | <span style="color:#0057ae;">$!final</span> <span style="font-weight:bold;">=</span> <span style="color:#0057ae;">True</span> | ||||
338 | <span style="font-weight:bold;">}</span> | ||||
339 | <span style="font-weight:bold;">}</span> | ||||
340 | | ||||
341 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">%h</span> <span style="font-weight:bold;">is</span> <span style="color:#0057ae;">FailHash</span> <span style="font-weight:bold;">=</span> oranges <span style="font-weight:bold;">=></span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">round</span><span style="color:#924c9d;">"</span><span style="font-weight:bold;">,</span> bananas <span style="font-weight:bold;">=></span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">bendy</span><span style="color:#924c9d;">"</span>; | ||||
342 | | ||||
343 | <span style="font-weight:bold;">say</span> <span style="color:#0057ae;">%h</span><span style="color:#924c9d;"><</span><span style="color:#bf0303;">oranges</span><span style="color:#924c9d;">></span>; | ||||
344 | <span style="color:#0057ae;">%h</span><span style="font-weight:bold;">.</span>finalize; | ||||
345 | <span style="font-weight:bold;">say</span> <span style="color:#0057ae;">%h</span><span style="color:#924c9d;"><</span><span style="color:#bf0303;">cherry</span><span style="color:#924c9d;">></span>; | ||||
346 | <span style="font-weight:bold;">CATCH</span> <span style="font-weight:bold;">{</span> <span style="font-weight:bold;">default</span> <span style="font-weight:bold;">{</span> put <span style="font-weight:bold;">.^</span>name<span style="font-weight:bold;">,</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">: </span><span style="color:#924c9d;">'</span><span style="font-weight:bold;">,</span> <span style="font-weight:bold;">.</span><span style="color:#0057ae;">Str</span> <span style="font-weight:bold;">}</span> <span style="font-weight:bold;">}</span> | ||||
347 | | ||||
348 | <span style="font-weight:bold;">my</span> <span style="font-weight:bold;">(</span> <span style="color:#0057ae;">@foo</span><span style="font-weight:bold;">,</span> <span style="color:#0057ae;">$bar</span> <span style="font-weight:bold;">)</span>; | ||||
349 | <span style="color:#0057ae;">@foo</span> <span style="font-weight:bold;">=</span> <span style="font-weight:bold;">(</span><span style="color:#0057ae;">$bar</span><span style="font-weight:bold;">)</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">42</span><span style="font-weight:bold;">,</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">str</span><span style="color:#924c9d;">"</span>; | ||||
350 | | ||||
351 | <span style="font-weight:bold;">say</span> anon <span style="font-weight:bold;">class</span> þ <span style="font-weight:bold;">{}</span>; | ||||
352 | <span style="font-weight:bold;">say</span> anon <span style="color:#644a9b;font-weight:bold;">sub</span> þ <span style="font-weight:bold;">{</span> <span style="color:#b08000;">42</span> <span style="font-weight:bold;">}</span>; | ||||
353 | | ||||
354 | <span style="color:#644a9b;font-weight:bold;">sub</span> a <span style="font-weight:bold;">{</span> | ||||
355 | <span style="font-weight:bold;">state</span> <span style="color:#0057ae;">@x</span>; | ||||
356 | <span style="font-weight:bold;">state</span> <span style="color:#0057ae;">$l</span> <span style="font-weight:bold;">=</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">A</span><span style="color:#924c9d;">'</span>; | ||||
357 | <span style="color:#0057ae;">@x</span><span style="font-weight:bold;">.push(</span><span style="color:#0057ae;">$l</span><span style="font-weight:bold;">++)</span>; | ||||
358 | <span style="font-weight:bold;">}</span>; | ||||
359 | | ||||
360 | <span style="font-weight:bold;">say</span> a <span style="font-weight:bold;">for</span> <span style="color:#b08000;">1</span><span style="font-weight:bold;">..</span><span style="color:#b08000;">6</span>; | ||||
361 | | ||||
362 | <span style="color:#644a9b;font-weight:bold;">sub</span> foo<span style="font-weight:bold;">(</span><span style="color:#0057ae;">$x</span><span style="font-weight:bold;">)</span> <span style="font-weight:bold;">{</span> | ||||
363 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">$v</span> <span style="font-weight:bold;">=</span> @; | ||||
364 | <span style="color:#0057ae;">$v</span><span style="font-weight:bold;">[</span><span style="color:#0057ae;">$x</span><span style="font-weight:bold;">]</span> <span style="font-weight:bold;">=</span> <span style="color:#0057ae;">$x</span>; | ||||
365 | <span style="font-weight:bold;">say</span> <span style="color:#0057ae;">$v</span>; | ||||
366 | <span style="font-weight:bold;">}</span> | ||||
367 | | ||||
368 | foo<span style="font-weight:bold;">(</span><span style="color:#0057ae;">$_</span><span style="font-weight:bold;">)</span> <span style="font-weight:bold;">for</span> <span style="font-weight:bold;">^</span><span style="color:#b08000;">3</span>; | ||||
369 | | ||||
370 | <span style="font-weight:bold;">use</span> MONKEY-TYPING; | ||||
371 | <span style="font-weight:bold;">augment</span> <span style="font-weight:bold;">class</span> <span style="color:#0057ae;">Int</span> <span style="font-weight:bold;">{</span> | ||||
372 | <span style="color:#644a9b;font-weight:bold;">method</span> is-answer <span style="font-weight:bold;">{</span> <span style="font-weight:bold;">self</span> <span style="font-weight:bold;">==</span> <span style="color:#b08000;">42</span> <span style="font-weight:bold;">}</span> | ||||
373 | <span style="font-weight:bold;">}</span> | ||||
374 | <span style="font-weight:bold;">say</span> <span style="color:#b08000;">42</span><span style="font-weight:bold;">.</span>is-answer; | ||||
375 | | ||||
376 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">$in</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">0</span>; | ||||
377 | | ||||
378 | <span style="color:#644a9b;font-weight:bold;">sub</span> f<span style="font-weight:bold;">(*</span><span style="color:#0057ae;">@c</span><span style="font-weight:bold;">)</span> <span style="font-weight:bold;">{</span> | ||||
379 | <span style="font-weight:bold;">(temp</span> <span style="color:#0057ae;">$in</span><span style="font-weight:bold;">)++</span>; | ||||
380 | <span style="color:#924c9d;">"</span><span style="color:#bf0303;"><f></span><span style="color:#924c9d;">\n</span><span style="color:#924c9d;">"</span> | ||||
381 | <span style="font-weight:bold;">~</span> <span style="color:#0057ae;">@c</span><span style="font-weight:bold;">».</span>indent<span style="font-weight:bold;">(</span><span style="color:#0057ae;">$in</span><span style="font-weight:bold;">).</span>join<span style="font-weight:bold;">(</span><span style="color:#924c9d;">"</span><span style="color:#924c9d;">\n</span><span style="color:#924c9d;">"</span><span style="font-weight:bold;">)</span> | ||||
382 | <span style="font-weight:bold;">~</span> <span style="font-weight:bold;">(+</span><span style="color:#0057ae;">@c</span> <span style="font-weight:bold;">??</span> <span style="color:#924c9d;">"</span><span style="color:#924c9d;">\n</span><span style="color:#924c9d;">"</span> <span style="font-weight:bold;">!!</span> <span style="color:#924c9d;">""</span><span style="font-weight:bold;">)</span> | ||||
383 | <span style="font-weight:bold;">~</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;"></f></span><span style="color:#924c9d;">'</span> | ||||
384 | <span style="font-weight:bold;">}</span>; | ||||
385 | | ||||
386 | <span style="font-weight:bold;">for</span> <span style="color:#924c9d;"><</span><span style="color:#bf0303;">ab:c d$e fgh ij*</span><span style="color:#924c9d;">></span> <span style="font-weight:bold;">{</span> | ||||
387 | <span style="font-weight:bold;">.say</span> <span style="font-weight:bold;">if</span> <span style="font-weight:bold;">m/</span><span style="color:#924c9d;"><</span><span style="font-weight:bold;">-</span><span style="color:#bf0303;">alpha</span><span style="color:#924c9d;">></span><span style="font-weight:bold;">/</span>; | ||||
388 | <span style="font-weight:bold;">}</span> | ||||
389 | | ||||
390 | <span style="font-weight:bold;">for</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">.</span><span style="color:#924c9d;">'</span> <span style="font-weight:bold;">{</span> | ||||
391 | <span style="font-weight:bold;">.</span><span style="color:#0057ae;">Str</span><span style="font-weight:bold;">.say</span> <span style="font-weight:bold;">when</span> <span style="font-weight:bold;">!.</span><span style="color:#0057ae;">IO</span><span style="font-weight:bold;">.</span>d; | ||||
392 | <span style="font-weight:bold;">.</span><span style="color:#0057ae;">IO</span><span style="font-weight:bold;">.</span>dir<span style="font-weight:bold;">()».</span><span style="color:#0057ae;">&</span><span style="color:#0057ae;">?</span><span style="color:#0057ae;">BLOCK</span> <span style="font-weight:bold;">when</span> <span style="font-weight:bold;">.</span><span style="color:#0057ae;">IO</span><span style="font-weight:bold;">.</span>d <span style="color:#898887;"># lets recurse a little!</span> | ||||
393 | <span style="font-weight:bold;">}</span> | ||||
394 | | ||||
395 | <span style="font-weight:bold;">use</span> <span style="color:#0057ae;">Dog</span><span style="font-weight:bold;">:</span><span style="color:#0057ae;">auth</span><span style="color:#924c9d;"><</span><span style="color:#bf0303;">Somebody</span><span style="color:#924c9d;">></span><span style="font-weight:bold;">:</span><span style="color:#0057ae;">ver</span><span style="color:#924c9d;"><</span><span style="color:#bf0303;">2.0</span><span style="color:#924c9d;">></span>; | ||||
396 | | ||||
397 | infix<span style="font-weight:bold;">:<+></span> | ||||
398 | infix<span style="font-weight:bold;">:<*></span> | ||||
399 | infix<span style="font-weight:bold;">:«<=»</span> | ||||
400 | | ||||
401 | postfix<span style="font-weight:bold;">:</span><span style="color:#924c9d;"><</span><span style="color:#bf0303;">²</span><span style="color:#924c9d;">></span> | ||||
402 | WOW<span style="font-weight:bold;">:</span><span style="color:#0057ae;">That'sAwesome</span> | ||||
403 | WOW<span style="font-weight:bold;">:</span><span style="color:#0057ae;">That's</span><span style="color:#924c9d;"><<</span><span style="color:#bf0303;">🆒</span><span style="color:#924c9d;">>></span> | ||||
404 | party<span style="font-weight:bold;">:</span><span style="color:#0057ae;">sweet</span><span style="color:#924c9d;"><</span><span style="color:#bf0303;">16</span><span style="color:#924c9d;">></span> | ||||
405 | | ||||
406 | infix<span style="font-weight:bold;">:<+></span> | ||||
407 | infix<span style="font-weight:bold;">:<<+>></span> | ||||
408 | infix<span style="font-weight:bold;">:«+»</span> | ||||
409 | infix<span style="font-weight:bold;">:['+']</span> | ||||
410 | infix<span style="font-weight:bold;">:('+')</span> | ||||
411 | | ||||
412 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">$a</span><span style="font-weight:bold;">:</span><span style="color:#0057ae;">b</span><span style="color:#924c9d;"><</span><span style="color:#bf0303;">c</span><span style="color:#924c9d;">></span><span style="font-weight:bold;">:</span><span style="color:#0057ae;">d</span><span style="color:#924c9d;"><</span><span style="color:#bf0303;">e</span><span style="color:#924c9d;">></span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">100</span>; | ||||
413 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">$a</span><span style="font-weight:bold;">:</span><span style="color:#0057ae;">d</span><span style="color:#924c9d;"><</span><span style="color:#bf0303;">e</span><span style="color:#924c9d;">></span><span style="font-weight:bold;">:</span><span style="color:#0057ae;">b</span><span style="color:#924c9d;"><</span><span style="color:#bf0303;">c</span><span style="color:#924c9d;">></span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">200</span>; | ||||
414 | <span style="font-weight:bold;">say</span> <span style="color:#0057ae;">$a</span><span style="font-weight:bold;">:</span><span style="color:#0057ae;">b</span><span style="color:#924c9d;"><</span><span style="color:#bf0303;">c</span><span style="color:#924c9d;">></span><span style="font-weight:bold;">:</span><span style="color:#0057ae;">d</span><span style="color:#924c9d;"><</span><span style="color:#bf0303;">e</span><span style="color:#924c9d;">></span>; | ||||
415 | | ||||
416 | <span style="font-weight:bold;">use</span> <span style="color:#0057ae;">Test</span>; plan <span style="color:#b08000;">1</span>; <span style="font-weight:bold;">constant</span> <span style="color:#0057ae;">&term</span><span style="font-weight:bold;">:</span><span style="color:#924c9d;"><</span><span style="color:#bf0303;">👍</span><span style="color:#924c9d;">></span> <span style="font-weight:bold;">=</span> <span style="color:#0057ae;">&ok</span><span style="font-weight:bold;">.</span>assuming<span style="font-weight:bold;">(</span><span style="color:#0057ae;">True</span><span style="font-weight:bold;">)</span>; | ||||
417 | 👍 | ||||
418 | | ||||
419 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">$x</span> <span style="font-weight:bold;">=</span> <span style="font-weight:bold;">do</span> <span style="font-weight:bold;">if</span> <span style="color:#0057ae;">True</span> <span style="font-weight:bold;">{</span> <span style="color:#b08000;">42</span> <span style="font-weight:bold;">}</span>; | ||||
420 | | ||||
421 | <span style="font-weight:bold;">say</span> <span style="color:#b08000;">1000000</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">1_000_000</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">10_00000</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">100_00_00</span>; | ||||
422 | <span style="font-weight:bold;">say</span> <span style="font-weight:bold;">-</span><span style="color:#b08000;">2</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">12345</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">0xBEEF</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">0o755</span><span style="font-weight:bold;">,</span> <span style="font-weight:bold;">:</span><span style="color:#b08000;">3</span><span style="font-weight:bold;"><</span><span style="color:#b08000;">1201</span><span style="font-weight:bold;">></span>; | ||||
423 | <span style="font-weight:bold;">say</span> <span style="color:#b08000;">1.0</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">3.14159</span><span style="font-weight:bold;">,</span> <span style="font-weight:bold;">-</span><span style="color:#b08000;">2.5</span><span style="font-weight:bold;">,</span> <span style="font-weight:bold;">:</span><span style="color:#b08000;">3</span><span style="font-weight:bold;"><</span><span style="color:#b08000;">21.0012</span><span style="font-weight:bold;">></span>; | ||||
424 | <span style="font-weight:bold;">say</span> <span style="color:#b08000;">1e0</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">6.022e23</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">1e-9</span><span style="font-weight:bold;">,</span> <span style="font-weight:bold;">-</span><span style="color:#b08000;">2e48</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">2e2i</span><span style="font-weight:bold;">,</span> <span style="font-weight:bold;">.</span><span style="color:#b08000;">42</span>; | ||||
425 | <span style="font-weight:bold;">say</span> <span style="color:#b08000;">2</span><span style="font-weight:bold;">.</span>e2<span style="font-weight:bold;">,</span> <span style="font-weight:bold;">.</span><span style="color:#b08000;">2</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">0o3</span><span style="color:#bf0303;text-decoration:underline;">9</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">0xfF3</span><span style="color:#bf0303;text-decoration:underline;">u</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">0o</span><span style="color:#bf0303;text-decoration:underline;">i</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">0x</span><span style="color:#bf0303;text-decoration:underline;">i</span><span style="font-weight:bold;">,</span> <span style="font-weight:bold;">:</span><span style="color:#b08000;">3</span><span style="font-weight:bold;"><</span><span style="color:#bf0303;text-decoration:underline;">></span><span style="font-weight:bold;">,</span> <span style="font-weight:bold;">:</span><span style="color:#b08000;">23</span><span style="font-weight:bold;"><</span><span style="color:#b08000;">gg</span><span style="color:#bf0303;text-decoration:underline;"> </span>; <span style="color:#898887;"># error</span> | ||||
426 | | ||||
427 | | ||||
428 | <span style="font-weight:bold;">for</span> <span style="color:#0057ae;">$size</span> <span style="font-weight:bold;">«[r/]«</span> <span style="font-weight:bold;">(</span><span style="color:#b08000;">2</span><span style="font-weight:bold;">**</span><span style="color:#b08000;">60</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">2</span><span style="font-weight:bold;">**</span><span style="color:#b08000;">50</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">2</span><span style="font-weight:bold;">**</span><span style="color:#b08000;">40</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">2</span><span style="font-weight:bold;">**</span><span style="color:#b08000;">30</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">2</span><span style="font-weight:bold;">**</span><span style="color:#b08000;">20</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">2</span><span style="font-weight:bold;">**</span><span style="color:#b08000;">10</span><span style="font-weight:bold;">)</span> | ||||
429 | <span style="font-weight:bold;">Z</span> <span style="color:#924c9d;"><</span><span style="color:#bf0303;">EB PB TB GB MB KB</span><span style="color:#924c9d;">></span> <span style="font-weight:bold;">-></span> <span style="font-weight:bold;">[</span><span style="color:#0057ae;">\v</span><span style="font-weight:bold;">,</span><span style="color:#0057ae;">\suffix</span><span style="font-weight:bold;">]</span> | ||||
430 | | ||||
431 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">$a</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">32</span>; | ||||
432 | <span style="color:#0057ae;">$a</span> <span style="font-weight:bold;">+=</span> <span style="color:#b08000;">10</span>; | ||||
433 | <span style="color:#0057ae;">$a</span> <span style="font-weight:bold;">-=</span> <span style="color:#b08000;">2</span>; | ||||
434 | <span style="color:#0057ae;">$a</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">3</span>; | ||||
435 | <span style="color:#0057ae;">$a</span> <span style="font-weight:bold;">min=</span> <span style="color:#b08000;">5</span>; | ||||
436 | <span style="color:#0057ae;">$s</span> <span style="font-weight:bold;">~=</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">b</span><span style="color:#924c9d;">'</span>; | ||||
437 | | ||||
438 | <span style="color:#644a9b;font-weight:bold;">sub</span> infix<span style="font-weight:bold;">:</span><span style="color:#924c9d;"><</span><span style="color:#bf0303;">space-concat</span><span style="color:#924c9d;">></span> <span style="font-weight:bold;">(</span><span style="color:#0057ae;">$a</span><span style="font-weight:bold;">,</span> <span style="color:#0057ae;">$b</span><span style="font-weight:bold;">)</span> <span style="font-weight:bold;">{</span> <span style="color:#0057ae;">$a</span> <span style="font-weight:bold;">~</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;"> </span><span style="color:#924c9d;">"</span> <span style="font-weight:bold;">~</span> <span style="color:#0057ae;">$b</span> <span style="font-weight:bold;">}</span>; | ||||
439 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">$a</span> <span style="font-weight:bold;">=</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">word1</span><span style="color:#924c9d;">'</span>; | ||||
440 | <span style="color:#0057ae;">$a</span> space-concat<span style="font-weight:bold;">=</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">word2</span><span style="color:#924c9d;">'</span>; | ||||
441 | | ||||
442 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">Real</span> <span style="color:#0057ae;">$a</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">1</span><span style="font-weight:bold;">/</span><span style="color:#b08000;">2</span>; | ||||
443 | <span style="color:#0057ae;">$a</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">3.14</span>; | ||||
444 | <span style="color:#0057ae;">$a</span> <span style="font-weight:bold;">.=</span> round; | ||||
445 | | ||||
446 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">$a</span> <span style="font-weight:bold;">=</span> <span style="color:#0057ae;">True</span>; | ||||
447 | <span style="font-weight:bold;">say</span> <span style="font-weight:bold;">so</span> <span style="color:#0057ae;">$a</span> <span style="font-weight:bold;">!=</span> <span style="color:#0057ae;">True</span>; | ||||
448 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">$i</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">10</span>; | ||||
449 | | ||||
450 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">$release</span> <span style="font-weight:bold;">=</span> <span style="color:#0057ae;">Date</span><span style="font-weight:bold;">.</span>new<span style="font-weight:bold;">(:</span><span style="color:#b08000;">2015</span>year<span style="font-weight:bold;">,</span> <span style="font-weight:bold;">:</span><span style="color:#b08000;">12</span>month<span style="font-weight:bold;">,</span> <span style="font-weight:bold;">:</span><span style="color:#b08000;">24</span>day<span style="font-weight:bold;">)</span>; | ||||
451 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">$today</span> <span style="font-weight:bold;">=</span> <span style="color:#0057ae;">Date</span><span style="font-weight:bold;">.</span>today; | ||||
452 | <span style="font-weight:bold;">say</span> <span style="font-weight:bold;">so</span> <span style="color:#0057ae;">$release</span> <span style="font-weight:bold;">!</span>before <span style="color:#0057ae;">$today</span>; | ||||
453 | | ||||
454 | <span style="font-weight:bold;">say</span> <span style="color:#b08000;">4</span> <span style="font-weight:bold;">R/</span> <span style="color:#b08000;">12</span>; | ||||
455 | <span style="font-weight:bold;">say</span> <span style="font-weight:bold;">[R/]</span> <span style="color:#b08000;">2</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">4</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">16</span>; | ||||
456 | <span style="font-weight:bold;">say</span> <span style="font-weight:bold;">[RZ~]</span> <span style="color:#924c9d;"><</span><span style="color:#bf0303;">1 2 3</span><span style="color:#924c9d;">></span><span style="font-weight:bold;">,<</span><span style="color:#b08000;">4</span> <span style="color:#b08000;">5</span> <span style="color:#b08000;">6</span><span style="font-weight:bold;">></span> | ||||
457 | | ||||
458 | <span style="font-weight:bold;">say</span> <span style="font-weight:bold;">(</span><span style="color:#b08000;">1</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">2</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">3</span><span style="font-weight:bold;">)</span> <span style="font-weight:bold;">»*»</span> <span style="color:#b08000;">2</span>; | ||||
459 | <span style="font-weight:bold;">say</span> <span style="font-weight:bold;">(</span><span style="color:#b08000;">1</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">2</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">3</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">4</span><span style="font-weight:bold;">)</span> <span style="font-weight:bold;">»~»</span> <span style="color:#924c9d;"><</span><span style="color:#bf0303;">a b</span><span style="color:#924c9d;">></span>; | ||||
460 | <span style="font-weight:bold;">say</span> <span style="font-weight:bold;">(</span><span style="color:#b08000;">1</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">2</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">3</span><span style="font-weight:bold;">)</span> <span style="font-weight:bold;">»+«</span> <span style="font-weight:bold;">(</span><span style="color:#b08000;">4</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">5</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">6</span><span style="font-weight:bold;">)</span>; | ||||
461 | <span style="font-weight:bold;">say</span> <span style="font-weight:bold;">(</span><span style="color:#0057ae;">&sin</span><span style="font-weight:bold;">,</span> <span style="color:#0057ae;">&cos</span><span style="font-weight:bold;">,</span> <span style="color:#0057ae;">&sqrt</span><span style="font-weight:bold;">)».(</span><span style="color:#b08000;">0.5</span><span style="font-weight:bold;">)</span>; | ||||
462 | | ||||
463 | <span style="font-weight:bold;">say</span> <span style="color:#0057ae;">@a</span> <span style="font-weight:bold;">»+=»</span> <span style="color:#b08000;">1</span>; | ||||
464 | <span style="font-weight:bold;">my</span> <span style="font-weight:bold;">(</span><span style="color:#0057ae;">$a</span><span style="font-weight:bold;">,</span> <span style="color:#0057ae;">$b</span><span style="font-weight:bold;">,</span> <span style="color:#0057ae;">$c</span><span style="font-weight:bold;">)</span>; | ||||
465 | <span style="font-weight:bold;">((</span><span style="color:#0057ae;">$a</span><span style="font-weight:bold;">,</span> <span style="color:#0057ae;">$b</span><span style="font-weight:bold;">),</span> <span style="color:#0057ae;">$c</span><span style="font-weight:bold;">)</span> <span style="font-weight:bold;">«=»</span> <span style="font-weight:bold;">((</span><span style="color:#b08000;">1</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">2</span><span style="font-weight:bold;">),</span> <span style="color:#b08000;">3</span><span style="font-weight:bold;">)</span>; | ||||
466 | | ||||
467 | <span style="font-weight:bold;">say</span> <span style="font-weight:bold;">!«</span> <span style="color:#0057ae;">@wisdom</span>; | ||||
468 | <span style="color:#0057ae;">@a</span>»<span style="font-weight:bold;">++</span>; | ||||
469 | <span style="font-weight:bold;">say</span> <span style="font-weight:bold;">-«</span> <span style="font-weight:bold;">[[</span><span style="color:#b08000;">1</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">2</span><span style="font-weight:bold;">],</span> <span style="color:#b08000;">3</span><span style="font-weight:bold;">]</span>; | ||||
470 | | ||||
471 | <span style="color:#0057ae;">@slops</span><span style="font-weight:bold;">».?</span>this-method-may-not-exist<span style="font-weight:bold;">()</span>; | ||||
472 | | ||||
473 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">%outer</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">1</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">2</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">3</span> <span style="font-weight:bold;">Z=></span> <span style="color:#924c9d;"><</span><span style="color:#bf0303;">a b c</span><span style="color:#924c9d;">></span>; | ||||
474 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">%inner</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">1</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">2</span> <span style="font-weight:bold;">Z=></span> <span style="color:#924c9d;"><</span><span style="color:#bf0303;">x z</span><span style="color:#924c9d;">></span>; | ||||
475 | <span style="font-weight:bold;">say</span> <span style="color:#0057ae;">%outer</span> <span style="font-weight:bold;">«~»</span> <span style="color:#0057ae;">%inner</span>; | ||||
476 | | ||||
477 | <span style="font-weight:bold;">say</span> <span style="color:#0057ae;">$neighbors</span> <span style="font-weight:bold;">»>>+<<»</span> <span style="font-weight:bold;">(</span><span style="color:#0057ae;">$p</span><span style="font-weight:bold;">,</span> <span style="font-weight:bold;">*)</span>; | ||||
478 | | ||||
479 | <span style="color:#644a9b;font-weight:bold;">sub</span> plus <span style="font-weight:bold;">{</span> <span style="color:#0057ae;">$^a</span> <span style="font-weight:bold;">+</span> <span style="color:#0057ae;">$^b</span> <span style="font-weight:bold;">}</span>; | ||||
480 | <span style="font-weight:bold;">say</span> <span style="font-weight:bold;">[[&plus]]</span> <span style="color:#b08000;">1</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">2</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">3</span>; | ||||
481 | | ||||
482 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">@n</span> <span style="font-weight:bold;">=</span> <span style="font-weight:bold;">[</span>\<span style="font-weight:bold;">~]</span> <span style="color:#b08000;">1</span><span style="font-weight:bold;">..*</span>; | ||||
483 | <span style="font-weight:bold;">say</span> <span style="color:#0057ae;">@n</span><span style="font-weight:bold;">[^</span><span style="color:#b08000;">5</span><span style="font-weight:bold;">]</span>; | ||||
484 | | ||||
485 | <span style="color:#0057ae;">@l</span> <span style="font-weight:bold;">=</span> <span style="color:#924c9d;"><</span><span style="color:#bf0303;">a b c d</span><span style="color:#924c9d;">></span> <span style="font-weight:bold;">Z~</span> <span style="color:#b08000;">1</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">2</span><span style="font-weight:bold;">,</span> <span style="font-weight:bold;">*</span>; | ||||
486 | <span style="font-weight:bold;">say</span> <span style="font-weight:bold;">so</span> <span style="color:#b08000;">1</span> S<span style="font-weight:bold;">&</span> <span style="color:#b08000;">2</span> S<span style="font-weight:bold;">&</span> <span style="color:#b08000;">3</span>; | ||||
487 | <span style="color:#0057ae;">@a</span> <span style="font-weight:bold;">X[+=]</span> <span style="color:#0057ae;">@b</span>; | ||||
488 | <span style="color:#644a9b;font-weight:bold;">multi</span> <span style="color:#644a9b;font-weight:bold;">sub</span> postfix<span style="font-weight:bold;">:<++>(</span><span style="color:#0057ae;">$x</span> <span style="font-weight:bold;">is</span> <span style="color:#644a9b;font-weight:bold;font-style:italic;">rw</span><span style="font-weight:bold;">)</span> <span style="font-weight:bold;">is</span> <span style="color:#644a9b;font-weight:bold;font-style:italic;">assoc</span><span style="color:#924c9d;"><</span><span style="color:#bf0303;">non</span><span style="color:#924c9d;">></span> | ||||
489 | <span style="font-weight:bold;">say</span> <span style="color:#0057ae;">$filename</span><span style="font-weight:bold;">++</span> <span style="font-weight:bold;">for</span> <span style="color:#b08000;">1</span><span style="font-weight:bold;">..</span><span style="color:#b08000;">3</span>; | ||||
490 | <span style="color:#0057ae;">$x</span> <span style="font-weight:bold;">%</span> <span style="color:#0057ae;">$y</span> <span style="font-weight:bold;">==</span> <span style="color:#0057ae;">$x</span> <span style="font-weight:bold;">-</span> floor<span style="font-weight:bold;">(</span><span style="color:#0057ae;">$x</span> <span style="font-weight:bold;">/</span> <span style="color:#0057ae;">$y</span><span style="font-weight:bold;">)</span> <span style="font-weight:bold;">*</span> <span style="color:#0057ae;">$y</span> | ||||
491 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;"><</span><span style="color:#bf0303;">a a b c a d</span><span style="color:#924c9d;">></span> <span style="font-weight:bold;">⊍</span> bag<span style="font-weight:bold;">(</span><span style="color:#924c9d;"><</span><span style="color:#bf0303;">a a b c c</span><span style="color:#924c9d;">></span><span style="font-weight:bold;">)</span>; | ||||
492 | <span style="font-weight:bold;">say</span> <span style="font-weight:bold;">-«</span> <span style="color:#924c9d;"><</span><span style="color:#bf0303;">1 2 3</span><span style="color:#924c9d;">></span> | ||||
493 | | ||||
494 | <span style="color:#898887;"># This is wrong: creates a Hash of Mixes, not Mix:</span> | ||||
495 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">Mix</span> <span style="color:#0057ae;">%mix</span>; | ||||
496 | <span style="color:#898887;"># Works with $ sigil:</span> | ||||
497 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">Mix</span> <span style="color:#0057ae;">$mix</span>; | ||||
498 | <span style="color:#898887;"># Can be typed:</span> | ||||
499 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">Mix</span><span style="font-weight:bold;">[</span><span style="color:#0057ae;">Int</span><span style="font-weight:bold;">]</span> <span style="color:#0057ae;">$mix-of-ints</span>; | ||||
500 | | ||||
501 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">$x</span>; | ||||
502 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">$x</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">7</span>; | ||||
503 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">Int</span> <span style="color:#0057ae;">$x</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">7</span>; | ||||
504 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">Int</span><span style="font-weight:bold;">:</span><span style="color:#0057ae;">D</span> <span style="color:#0057ae;">$x</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">7</span>; | ||||
505 | ndef<span style="font-weight:bold;">)</span> | ||||
506 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">Int</span> <span style="color:#0057ae;">$x</span> <span style="font-weight:bold;">where</span> <span style="font-weight:bold;">{</span> <span style="color:#0057ae;">$_</span> <span style="font-weight:bold;">></span> <span style="color:#b08000;">3</span> <span style="font-weight:bold;">}</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">7</span>; | ||||
507 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">Int</span> <span style="color:#0057ae;">$x</span> <span style="font-weight:bold;">where</span> <span style="font-weight:bold;">*</span> <span style="font-weight:bold;">></span> <span style="color:#b08000;">3</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">7</span>; | ||||
508 | | ||||
509 | <span style="color:#0057ae;">$str</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">tr</span><span style="font-weight:bold;">:d:c</span><span style="font-weight:bold;">!</span><span style="color:#006e28;">dol</span><span style="font-weight:bold;">!</span><span style="color:#bf0303;">wne</span><span style="font-weight:bold;">!</span>; | ||||
510 | <span style="color:#0057ae;">$str</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">TR</span><span style="font-weight:bold;">:c</span><span style="font-weight:bold;">/</span><span style="color:#006e28;">dol</span><span style="font-weight:bold;">/</span><span style="color:#bf0303;">wne</span><span style="font-weight:bold;">/</span>; | ||||
511 | <span style="color:#0057ae;">$str</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">s!</span><span style="color:#006e28;">foo</span><span style="font-weight:bold;">!</span><span style="color:#bf0303;">fox</span><span style="font-weight:bold;">!</span>; | ||||
512 | <span style="color:#0057ae;">$str</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">/</span><span style="color:#006e28;">foo</span><span style="font-weight:bold;">/</span>bar<span style="font-weight:bold;">/</span>; | ||||
513 | <span style="color:#0057ae;">$str</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">///</span>; | ||||
514 | <span style="color:#0057ae;">$str</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">rx/</span><span style="color:#006e28;">foo</span><span style="font-weight:bold;">/</span>bar<span style="font-weight:bold;">/</span>; | ||||
515 | <span style="color:#0057ae;">$str</span> <span style="font-weight:bold;">~~</span> <span style="color:#bf0303;">Q </span><span style="font-weight:bold;">:</span><span style="font-weight:bold;">regex</span> /foo/; | ||||
516 | <span style="color:#0057ae;">$str</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">s{</span><span style="color:#006e28;">b</span><span style="font-weight:bold;">(</span><span style="color:#644a9b;font-weight:bold;">.</span><span style="font-weight:bold;">)</span><span style="color:#006e28;">r</span><span style="font-weight:bold;">}</span> <span style="font-weight:bold;">=</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;"> d</span><span style="color:#0057ae;">$0</span><span style="color:#bf0303;">n</span><span style="color:#924c9d;">"</span>; | ||||
517 | <span style="color:#0057ae;">$str</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">regex</span><span style="font-weight:bold;">{</span><span style="color:#006e28;">fox</span><span style="font-weight:bold;">}</span>; <span style="color:#898887;"># error</span> | ||||
518 | <span style="color:#0057ae;">$str</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">regex</span> <span style="font-weight:bold;">{</span><span style="color:#006e28;">fox</span><span style="font-weight:bold;">}</span>; | ||||
519 | <span style="font-weight:bold;">rx/</span><span style="color:#006e28;"> </span><span style="font-weight:bold;">^</span><span style="color:#006e28;">ab </span><span style="font-weight:bold;">/</span>; | ||||
520 | <span style="font-weight:bold;">/</span> <span style="font-weight:bold;">^</span> ab <span style="font-weight:bold;">/</span>; | ||||
521 | <span style="font-weight:bold;">rx/</span><span style="color:#006e28;"> </span><span style="color:#b08000;">\d</span><span style="color:#006e28;"> </span><span style="font-weight:bold;">**</span><span style="color:#006e28;"> 2</span><span style="font-weight:bold;">/</span>; | ||||
522 | <span style="color:#0057ae;">$str</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">tr</span><span style="font-weight:bold;">:d:c</span><span style="font-weight:bold;">!</span><span style="color:#006e28;">dol</span><span style="font-weight:bold;">!</span><span style="color:#bf0303;">wne</span><span style="font-weight:bold;">!</span>; | ||||
523 | <span style="color:#0057ae;">$str</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">TR</span><span style="font-weight:bold;">:c</span><span style="font-weight:bold;">/</span><span style="color:#006e28;">dol</span><span style="font-weight:bold;">/</span><span style="color:#bf0303;">wne</span><span style="font-weight:bold;">/</span>; | ||||
524 | <span style="color:#0057ae;">$str</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">s!</span><span style="color:#006e28;">foo</span><span style="font-weight:bold;">!</span><span style="color:#bf0303;">fox</span><span style="font-weight:bold;">!</span>; | ||||
525 | <span style="color:#0057ae;">$str</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">rx/</span><span style="color:#006e28;">foo</span><span style="font-weight:bold;">/</span>; | ||||
526 | <span style="color:#0057ae;">$str</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">regex</span>:ds <span style="font-weight:bold;">{</span><span style="color:#006e28;">fox</span><span style="font-weight:bold;">}</span>; | ||||
527 | <span style="color:#0057ae;">$str</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">regex</span><span style="font-weight:bold;">{</span><span style="color:#006e28;">fox</span><span style="font-weight:bold;">}</span>; | ||||
528 | <span style="font-weight:bold;">my</span> a <span style="font-weight:bold;">=</span> <span style="font-weight:bold;">/</span><span style="color:#006e28;">a</span><span style="font-weight:bold;">/</span>; | ||||
529 | <span style="font-weight:bold;">rx/</span><span style="color:#006e28;"> </span><span style="font-weight:bold;">^</span><span style="color:#006e28;">ab </span><span style="font-weight:bold;">/</span>; | ||||
530 | a <span style="font-weight:bold;">=</span> <span style="font-weight:bold;">/</span><span style="color:#006e28;"> </span><span style="font-weight:bold;">^</span><span style="color:#006e28;"> ab </span><span style="color:#924c9d;">'</span><span style="color:#bf0303;">a</span><span style="color:#924c9d;">'</span><span style="color:#006e28;"> </span><span style="color:#924c9d;">"</span><span style="color:#0057ae;">$a</span><span style="color:#924c9d;">"</span><span style="color:#006e28;"> </span><span style="color:#b08000;">\d</span><span style="color:#006e28;"> </span><span style="color:#b08000;">\n\n</span><span style="color:#006e28;"> </span><span style="color:#924c9d;"><</span><span style="color:#b08000;">:L</span><span style="color:#924c9d;"> </span><span style="color:#b08000;">:Script</span><span style="color:#924c9d;"><</span><span style="color:#bf0303;">Latin</span><span style="color:#924c9d;">></span><span style="color:#924c9d;">></span><span style="color:#006e28;"> </span><span style="color:#924c9d;"><</span><span style="color:#b08000;">:Block</span><span style="font-weight:bold;">(</span><span style="color:#924c9d;">'</span><span style="color:#bf0303;">Basic Latin</span><span style="color:#924c9d;">'</span><span style="font-weight:bold;">)</span><span style="color:#924c9d;">></span><span style="color:#006e28;"> </span><span style="font-weight:bold;">/</span>; | ||||
531 | <span style="font-weight:bold;">//</span>; | ||||
532 | <span style="font-weight:bold;">rx</span><span style="font-weight:bold;">:sigspace</span><span style="font-weight:bold;">.</span><span style="color:#b08000;">\d</span><span style="font-weight:bold;">+</span><span style="color:#006e28;"> </span><span style="color:#924c9d;">< </span><span style="color:#b08000;">:Script</span><span style="color:#924c9d;"> </span><span style="font-weight:bold;">+</span><span style="color:#b08000;">:Block</span><span style="color:#924c9d;"> </span><span style="color:#924c9d;">"</span><span style="color:#bf0303;">Basic Latin</span><span style="color:#924c9d;">"</span><span style="color:#924c9d;"> </span><span style="font-weight:bold;">+</span><span style="color:#924c9d;"> </span><span style="color:#b08000;">:L</span><span style="color:#924c9d;">></span><span style="color:#006e28;"> </span><span style="color:#898887;">#plop</span> | ||||
533 | <span style="color:#924c9d;">'</span><span style="color:#bf0303;">-</span><span style="color:#924c9d;">'</span><span style="font-weight:bold;">.</span>; | ||||
534 | <span style="font-weight:bold;">rx/</span><span style="color:#006e28;"> </span><span style="color:#b08000;">\d</span><span style="color:#006e28;"> </span><span style="font-weight:bold;">**</span><span style="color:#006e28;"> 2 </span><span style="color:#924c9d;"><[</span><span style="color:#b08000;">\d</span><span style="color:#924c9d;"> a d</span><span style="color:#924c9d;">]</span><span style="font-weight:bold;">+</span><span style="color:#924c9d;">[</span><span style="color:#b08000;">\</span><span style="color:#924c9d;">x233</span><span style="font-weight:bold;">..</span><span style="color:#b08000;">\</span><span style="color:#924c9d;">]</span><span style="color:#924c9d;"> " </span><span style="color:#b08000;">\</span><span style="color:#924c9d;">c[dsds]</span><span style="color:#924c9d;">]></span><span style="font-weight:bold;">/</span>; | ||||
535 | <span style="font-weight:bold;">say</span> <span style="color:#0057ae;">$str</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">m</span><span style="font-weight:bold;">:g</span><span style="font-weight:bold;">/[(</span><span style="color:#924c9d;"><[</span><span style="color:#924c9d;">ACGT</span><span style="color:#924c9d;">]></span><span style="color:#006e28;"> </span><span style="font-weight:bold;">**</span><span style="font-weight:bold;">:</span><span style="color:#006e28;"> 3</span><span style="font-weight:bold;">)</span><span style="color:#006e28;"> </span><span style="color:#b08000;">\s</span><span style="font-weight:bold;">*</span><span style="font-weight:bold;">]</span><span style="font-weight:bold;">+</span><span style="color:#006e28;"> </span><span style="color:#b08000;">\s</span><span style="font-weight:bold;">+</span><span style="color:#006e28;"> </span><span style="font-weight:bold;">(</span><span style="color:#924c9d;"><[</span><span style="color:#924c9d;">A</span><span style="font-weight:bold;">..</span><span style="color:#924c9d;">Z a a</span><span style="font-weight:bold;">..</span><span style="color:#924c9d;">z </span><span style="color:#b08000;">\s</span><span style="color:#924c9d;">]></span><span style="font-weight:bold;">+</span><span style="font-weight:bold;">)/</span>; | ||||
536 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">$333</span><span style="color:#924c9d;">'</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">m/</span><span style="font-weight:bold;">^^</span><span style="color:#006e28;"> </span><span style="font-weight:bold;"><?</span><span style="color:#924c9d;">[</span><span style="color:#924c9d;">$</span><span style="color:#924c9d;">]></span><span style="color:#006e28;"> </span><span style="color:#644a9b;font-weight:bold;">.</span><span style="color:#006e28;"> </span><span style="color:#b08000;">\d</span><span style="font-weight:bold;">+</span><span style="color:#006e28;"> </span><span style="font-weight:bold;">/</span>; | ||||
537 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">/foo/o/bar/</span><span style="color:#924c9d;">'</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">/</span><span style="color:#b08000;">\</span><span style="color:#924c9d;">/</span><span style="color:#644a9b;font-weight:bold;">.</span><span style="font-weight:bold;">**</span><span style="color:#006e28;">!</span><span style="font-weight:bold;">{</span><span style="color:#b08000;">1</span><span style="font-weight:bold;">..</span><span style="color:#b08000;">10</span><span style="font-weight:bold;">}</span><span style="color:#b08000;">\</span><span style="color:#924c9d;">/</span><span style="font-weight:bold;">/</span>; | ||||
538 | rx<span style="font-weight:bold;">(</span>a<span style="font-weight:bold;">)</span>; | ||||
539 | <span style="font-weight:bold;">rx (</span><span style="color:#006e28;">a</span><span style="font-weight:bold;">)</span>; | ||||
540 | <span style="color:#0057ae;">$str</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">regex</span> <span style="font-weight:bold;">{</span><span style="color:#006e28;">fox</span><span style="font-weight:bold;">}</span>; | ||||
541 | <span style="color:#0057ae;">$str</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">s{</span><span style="color:#006e28;">b</span><span style="font-weight:bold;">(</span><span style="color:#644a9b;font-weight:bold;">.</span><span style="font-weight:bold;">)</span><span style="color:#006e28;">r</span><span style="font-weight:bold;">}</span> <span style="font-weight:bold;">=</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;"> d</span><span style="color:#0057ae;">$0</span><span style="color:#bf0303;">n</span><span style="color:#924c9d;">"</span>; | ||||
542 | <span style="font-weight:bold;">if</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">abc</span><span style="color:#924c9d;">'</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">/</span><span style="color:#006e28;"> </span><span style="font-weight:bold;">[</span><span style="color:#006e28;">a</span><span style="font-weight:bold;">||</span><span style="color:#006e28;">b</span><span style="font-weight:bold;">]</span><span style="color:#006e28;"> </span><span style="font-weight:bold;">(</span><span style="color:#006e28;">c</span><span style="font-weight:bold;">)</span><span style="color:#006e28;"> </span><span style="font-weight:bold;">/</span> <span style="font-weight:bold;">{</span> | ||||
543 | <span style="font-weight:bold;">say</span> <span style="font-weight:bold;">~</span><span style="color:#0057ae;">$0</span>; <span style="color:#898887;"># OUTPUT: «c»</span> | ||||
544 | <span style="font-weight:bold;">}</span> | ||||
545 | <span style="font-weight:bold;">if</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">abc</span><span style="color:#924c9d;">'</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">/</span><span style="color:#006e28;"> </span><span style="color:#0057ae;">$<myname></span><span style="color:#006e28;"> = </span><span style="font-weight:bold;">[</span><span style="color:#006e28;"> </span><span style="color:#b08000;">\w</span><span style="font-weight:bold;">+</span><span style="color:#006e28;"> </span><span style="font-weight:bold;">]</span><span style="color:#006e28;"> </span><span style="font-weight:bold;">/</span> <span style="font-weight:bold;">{</span> | ||||
546 | <span style="font-weight:bold;">say</span> <span style="font-weight:bold;">~</span><span style="color:#0057ae;">$<myname</span><span style="font-weight:bold;">></span> <span style="color:#898887;"># OUTPUT: «abc»</span> | ||||
547 | <span style="font-weight:bold;">}</span> | ||||
548 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">abc</span><span style="color:#924c9d;">'</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">/</span><span style="color:#006e28;"> a </span><span style="font-weight:bold;"><(</span><span style="color:#006e28;"> b </span><span style="font-weight:bold;">)></span><span style="color:#006e28;"> c</span><span style="font-weight:bold;">/</span>; | ||||
549 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">abc</span><span style="color:#924c9d;">'</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">/</span><span style="color:#006e28;"> </span><span style="font-weight:bold;"><(</span><span style="color:#006e28;">a </span><span style="font-weight:bold;"><(</span><span style="color:#006e28;"> b </span><span style="font-weight:bold;">)></span><span style="color:#006e28;"> c</span><span style="font-weight:bold;">)>/</span>; | ||||
550 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">abc</span><span style="color:#924c9d;">"</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">/</span><span style="color:#006e28;">a</span><span style="color:#644a9b;font-weight:bold;">.</span><span style="color:#006e28;"> </span><span style="font-weight:bold;">|</span><span style="color:#006e28;"> ab </span><span style="font-weight:bold;">{</span> <span style="font-weight:bold;">print</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">win</span><span style="color:#924c9d;">"</span> <span style="font-weight:bold;">}</span><span style="color:#006e28;"> </span><span style="font-weight:bold;">/</span>; | ||||
551 | | ||||
552 | <span style="font-weight:bold;">so</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">hello world</span><span style="color:#924c9d;">'</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">m</span><span style="font-weight:bold;">:Perl5</span><span style="color:#008000;font-weight:bold;">/</span><span style="color:#924c9d;">^</span><span style="color:#006e28;">hello </span><span style="color:#924c9d;">(</span><span style="color:#006e28;">world</span><span style="color:#924c9d;">)</span><span style="color:#008000;font-weight:bold;">/</span>; <span style="color:#898887;"># OUTPUT: «True»</span> | ||||
553 | <span style="font-weight:bold;">so</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">hello world</span><span style="color:#924c9d;">'</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">m/</span><span style="font-weight:bold;">^</span><span style="color:#006e28;">hello </span><span style="font-weight:bold;">(</span><span style="color:#006e28;">world</span><span style="font-weight:bold;">)/</span>; <span style="color:#898887;"># OUTPUT: «False»</span> | ||||
554 | <span style="font-weight:bold;">so</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">hello world</span><span style="color:#924c9d;">'</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">m/</span><span style="font-weight:bold;">^</span><span style="color:#006e28;"> </span><span style="color:#924c9d;">'</span><span style="color:#bf0303;">hello </span><span style="color:#924c9d;">'</span><span style="color:#006e28;"> </span><span style="font-weight:bold;">(</span><span style="color:#924c9d;">'</span><span style="color:#bf0303;">world</span><span style="color:#924c9d;">'</span><span style="font-weight:bold;">)/</span>; <span style="color:#898887;"># OUTPUT: «True»</span> | ||||
555 | | ||||
556 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">Abra abra CADABRA</span><span style="color:#924c9d;">"</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">m</span><span style="font-weight:bold;">:exhaustive</span><span style="font-weight:bold;">/</span><span style="font-weight:bold;">:i</span><span style="color:#006e28;"> a </span><span style="color:#b08000;">\w</span><span style="font-weight:bold;">+</span><span style="color:#006e28;"> a</span><span style="font-weight:bold;">/</span>; | ||||
557 | | ||||
558 | <span style="font-weight:bold;">my</span> <span style="font-weight:bold;">regex</span> ipv4-octet <span style="font-weight:bold;">{</span><span style="color:#006e28;"> </span><span style="color:#b08000;">\d</span><span style="color:#006e28;"> </span><span style="font-weight:bold;">**</span><span style="color:#006e28;"> 1</span><span style="font-weight:bold;">..</span><span style="color:#006e28;">3 </span><span style="font-weight:bold;"><?{</span> <span style="color:#0057ae;">$/</span><span style="font-weight:bold;">.</span><span style="color:#0057ae;">Int</span> <span style="font-weight:bold;"><=</span> <span style="color:#b08000;">255</span> <span style="font-weight:bold;">&&</span> <span style="color:#0057ae;">$/</span><span style="font-weight:bold;">.</span><span style="color:#0057ae;">Int</span> <span style="font-weight:bold;">>=</span> <span style="color:#b08000;">0</span> <span style="font-weight:bold;">}></span><span style="color:#006e28;"> </span><span style="font-weight:bold;">}</span> | ||||
559 | <span style="font-weight:bold;">my</span> <span style="font-weight:bold;">regex</span> ipv4-octet <span style="font-weight:bold;">{</span><span style="color:#006e28;"> </span><span style="color:#b08000;">\d</span><span style="color:#006e28;"> </span><span style="font-weight:bold;">**</span><span style="color:#006e28;"> 1</span><span style="font-weight:bold;">..</span><span style="color:#006e28;">3 </span><span style="font-weight:bold;"><?{</span> <span style="color:#0057ae;">True</span> <span style="font-weight:bold;">}></span><span style="color:#006e28;"> </span><span style="font-weight:bold;">}</span> | ||||
560 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">abc</span><span style="color:#924c9d;">'</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">/</span><span style="color:#006e28;"> </span><span style="font-weight:bold;"><?</span><span style="font-weight:bold;">before</span><span style="color:#006e28;"> a</span><span style="font-weight:bold;">></span><span style="color:#006e28;"> </span><span style="font-weight:bold;">&&</span><span style="color:#006e28;"> </span><span style="color:#644a9b;font-weight:bold;">.</span><span style="color:#006e28;"> </span><span style="font-weight:bold;">/</span>; | ||||
561 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">abcdefg</span><span style="color:#924c9d;">'</span> <span style="font-weight:bold;">~~</span> <span style="font-weight:bold;">rx{</span><span style="color:#006e28;"> abc </span><span style="color:#924c9d;"><[</span><span style="color:#924c9d;">email protected</span><span style="color:#924c9d;">]</span><span style="color:#bf0303;">ending_letters</span><span style="color:#924c9d;">></span><span style="color:#006e28;"> </span><span style="font-weight:bold;">}</span>; | ||||
562 | <span style="font-weight:bold;">s</span><span style="font-weight:bold;">:g</span><span style="font-weight:bold;">[</span><span style="color:#b08000;">\d</span><span style="font-weight:bold;">+</span><span style="color:#006e28;"> </span><span style="font-weight:bold;"><?</span><span style="font-weight:bold;">before</span><span style="color:#006e28;"> </span><span style="color:#b08000;">\s</span><span style="font-weight:bold;">*</span><span style="color:#006e28;"> </span><span style="color:#0057ae;">@units</span><span style="font-weight:bold;">>]</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">5</span> <span style="font-weight:bold;">*</span> <span style="color:#0057ae;">$/</span>; | ||||
563 | | ||||
564 | | ||||
565 | <span style="color:#644a9b;font-weight:bold;">sub</span> walk<span style="font-weight:bold;">(</span><span style="color:#0057ae;">\thing</span><span style="font-weight:bold;">,</span> <span style="font-weight:bold;">*</span><span style="color:#0057ae;">@keys</span><span style="font-weight:bold;">)</span> <span style="font-weight:bold;">is</span> <span style="color:#644a9b;font-weight:bold;font-style:italic;">rw</span> <span style="font-weight:bold;">{</span> | ||||
566 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">$current</span> <span style="font-weight:bold;">:=</span> thing; | ||||
567 | <span style="font-weight:bold;">for</span> <span style="color:#0057ae;">@keys</span> <span style="font-weight:bold;">-></span> <span style="color:#0057ae;">$k</span> <span style="font-weight:bold;">{</span> | ||||
568 | <span style="font-weight:bold;">if</span> <span style="color:#0057ae;">$k</span> <span style="font-weight:bold;">~~</span> <span style="color:#0057ae;">Int</span> <span style="font-weight:bold;">{</span> | ||||
569 | <span style="color:#0057ae;">$current</span> <span style="font-weight:bold;">:=</span> <span style="color:#0057ae;">$current</span><span style="font-weight:bold;">[</span><span style="color:#0057ae;">$k</span><span style="font-weight:bold;">]</span>; | ||||
570 | <span style="font-weight:bold;">}</span> | ||||
571 | <span style="font-weight:bold;">else</span> <span style="font-weight:bold;">{</span> | ||||
572 | <span style="color:#0057ae;">$current</span> <span style="font-weight:bold;">:=</span> <span style="color:#0057ae;">$current</span><span style="font-weight:bold;">{</span><span style="color:#0057ae;">$k</span><span style="font-weight:bold;">}</span>; | ||||
573 | <span style="font-weight:bold;">}</span> | ||||
574 | <span style="font-weight:bold;">}</span> | ||||
575 | <span style="color:#0057ae;">$current</span>; | ||||
576 | <span style="font-weight:bold;">}</span> | ||||
577 | | ||||
578 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">%hash</span>; | ||||
579 | walk<span style="font-weight:bold;">(</span><span style="color:#0057ae;">%hash</span><span style="font-weight:bold;">,</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">some</span><span style="color:#924c9d;">'</span><span style="font-weight:bold;">,</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">key</span><span style="color:#924c9d;">'</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">1</span><span style="font-weight:bold;">,</span> <span style="color:#b08000;">2</span><span style="font-weight:bold;">)</span> <span style="font-weight:bold;">=</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">autovivified</span><span style="color:#924c9d;">'</span>; | ||||
580 | | ||||
581 | <span style="font-weight:bold;">say</span> <span style="color:#0057ae;">%hash</span><span style="font-weight:bold;">.</span>perl; | ||||
582 | | ||||
583 | <span style="font-weight:bold;">class</span> <span style="font-weight:bold;">X::</span><span style="color:#0057ae;">WithoutLineNumber</span> <span style="font-weight:bold;">is</span> <span style="font-weight:bold;">X::</span><span style="color:#0057ae;">AdHoc</span> <span style="font-weight:bold;">{</span> | ||||
584 | <span style="color:#644a9b;font-weight:bold;">multi</span> <span style="color:#644a9b;font-weight:bold;">method</span> gist<span style="font-weight:bold;">(X::</span><span style="color:#0057ae;">WithoutLineNumber</span><span style="font-weight:bold;">:</span><span style="color:#0057ae;">D</span><span style="font-weight:bold;">:)</span> <span style="font-weight:bold;">{</span> | ||||
585 | <span style="color:#0057ae;">$.payload</span> | ||||
586 | <span style="font-weight:bold;">}</span> | ||||
587 | <span style="font-weight:bold;">}</span> | ||||
588 | <span style="font-weight:bold;">die</span> <span style="font-weight:bold;">X::</span><span style="color:#0057ae;">WithoutLineNumber</span><span style="font-weight:bold;">.</span>new<span style="font-weight:bold;">(</span>payload <span style="font-weight:bold;">=></span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">message</span><span style="color:#924c9d;">"</span><span style="font-weight:bold;">)</span> | ||||
589 | | ||||
590 | <span style="font-weight:bold;">{</span> <span style="font-weight:bold;">return</span>; <span style="font-weight:bold;">CATCH</span> <span style="font-weight:bold;">{</span> <span style="font-weight:bold;">default</span> <span style="font-weight:bold;">{</span> <span style="color:#0057ae;">$*ERR</span><span style="font-weight:bold;">.say:</span> <span style="font-weight:bold;">.^</span>name<span style="font-weight:bold;">,</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">: </span><span style="color:#924c9d;">'</span><span style="font-weight:bold;">,</span> <span style="font-weight:bold;">.</span><span style="color:#0057ae;">Str</span> <span style="font-weight:bold;">}</span> <span style="font-weight:bold;">}</span> <span style="font-weight:bold;">}</span> | ||||
591 | | ||||
592 | <span style="color:#644a9b;font-weight:bold;">multi</span> <span style="color:#644a9b;font-weight:bold;">sub</span> trait_mod<span style="font-weight:bold;">:</span><span style="color:#924c9d;"><</span><span style="color:#bf0303;">is</span><span style="color:#924c9d;">></span><span style="font-weight:bold;">(</span><span style="color:#0057ae;">Routine</span> <span style="color:#0057ae;">$r</span><span style="font-weight:bold;">,</span> <span style="font-weight:bold;">:</span><span style="color:#0057ae;">$export</span><span style="font-weight:bold;">!)</span> | ||||
593 | | ||||
594 | react <span style="font-weight:bold;">{</span> | ||||
595 | whenever signal<span style="font-weight:bold;">(</span>SIGINT<span style="font-weight:bold;">)</span> <span style="font-weight:bold;">{</span> | ||||
596 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">goodbye</span><span style="color:#924c9d;">"</span>; | ||||
597 | done | ||||
598 | <span style="font-weight:bold;">}</span> | ||||
599 | <span style="font-weight:bold;">}</span> | ||||
600 | | ||||
601 | signal<span style="font-weight:bold;">(</span>SIGINT<span style="font-weight:bold;">).</span>tap<span style="font-weight:bold;">:</span> <span style="font-weight:bold;">{</span> <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">bye</span><span style="color:#924c9d;">"</span>; <span style="font-weight:bold;">exit</span> <span style="font-weight:bold;">}</span>; <span style="font-weight:bold;">loop</span> <span style="font-weight:bold;">{}</span> | ||||
602 | | ||||
603 | <span style="color:#644a9b;font-weight:bold;">method</span> base-repeating<span style="font-weight:bold;">(</span><span style="color:#0057ae;">Rational</span><span style="font-weight:bold;">:</span><span style="color:#0057ae;">D</span><span style="font-weight:bold;">:</span> <span style="color:#0057ae;">Int</span><span style="font-weight:bold;">:</span><span style="color:#0057ae;">D</span><span style="font-weight:bold;">()</span> <span style="color:#0057ae;">$base</span> <span style="font-weight:bold;">=</span> <span style="color:#b08000;">10</span><span style="font-weight:bold;">)</span> | ||||
604 | | ||||
605 | <span style="color:#644a9b;font-weight:bold;">multi</span> <span style="color:#644a9b;font-weight:bold;">sub</span> prefix<span style="font-weight:bold;">:<-->(</span><span style="color:#0057ae;">$x</span> <span style="font-weight:bold;">is</span> <span style="color:#644a9b;font-weight:bold;font-style:italic;">rw</span><span style="font-weight:bold;">)</span> <span style="font-weight:bold;">is</span> <span style="color:#644a9b;font-weight:bold;font-style:italic;">assoc</span><span style="color:#924c9d;"><</span><span style="color:#bf0303;">non</span><span style="color:#924c9d;">></span> | ||||
606 | | ||||
607 | | ||||
608 | <span style="color:#644a9b;font-weight:bold;">multi</span> MAIN<span style="font-weight:bold;">(</span><span style="color:#0057ae;">Bool</span> <span style="font-weight:bold;">:</span><span style="color:#0057ae;">$man</span><span style="font-weight:bold;">)</span> <span style="font-weight:bold;">{</span> | ||||
609 | run <span style="color:#0057ae;">$*EXECUTABLE</span><span style="font-weight:bold;">,</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">--doc</span><span style="color:#924c9d;">'</span><span style="font-weight:bold;">,</span> <span style="color:#0057ae;">$*PROGRAM</span>; | ||||
610 | <span style="font-weight:bold;">}</span> | ||||
611 | | ||||
612 | <span style="font-weight:bold;">for</span> <span style="color:#0057ae;">$file</span><span style="font-weight:bold;">.</span>lines <span style="font-weight:bold;">-></span> <span style="color:#0057ae;">$line</span> <span style="font-weight:bold;">{</span> | ||||
613 | <span style="font-weight:bold;">next</span> <span style="font-weight:bold;">unless</span> <span style="color:#0057ae;">$line</span>; <span style="color:#898887;"># ignore any empty lines</span> | ||||
614 | | ||||
615 | <span style="font-weight:bold;">my</span> <span style="font-weight:bold;">(</span><span style="color:#0057ae;">$pairing</span><span style="font-weight:bold;">,</span> <span style="color:#0057ae;">$result</span><span style="font-weight:bold;">)</span> <span style="font-weight:bold;">=</span> <span style="color:#0057ae;">$line</span><span style="font-weight:bold;">.</span>split<span style="font-weight:bold;">(</span><span style="color:#924c9d;">'</span><span style="color:#bf0303;"> | </span><span style="color:#924c9d;">'</span><span style="font-weight:bold;">)</span>; | ||||
616 | <span style="font-weight:bold;">my</span> <span style="font-weight:bold;">(</span><span style="color:#0057ae;">$p1</span><span style="font-weight:bold;">,</span> <span style="color:#0057ae;">$p2</span><span style="font-weight:bold;">)</span> <span style="font-weight:bold;">=</span> <span style="color:#0057ae;">$pairing</span><span style="font-weight:bold;">.</span>words; | ||||
617 | <span style="font-weight:bold;">my</span> <span style="font-weight:bold;">(</span><span style="color:#0057ae;">$r1</span><span style="font-weight:bold;">,</span> <span style="color:#0057ae;">$r2</span><span style="font-weight:bold;">)</span> <span style="font-weight:bold;">=</span> <span style="color:#0057ae;">$result</span><span style="font-weight:bold;">.</span>split<span style="font-weight:bold;">(</span><span style="color:#924c9d;">'</span><span style="color:#bf0303;">:</span><span style="color:#924c9d;">'</span><span style="font-weight:bold;">)</span>; | ||||
618 | | ||||
619 | <span style="color:#0057ae;">%sets</span><span style="font-weight:bold;">{</span><span style="color:#0057ae;">$p1</span><span style="font-weight:bold;">}</span> <span style="font-weight:bold;">+=</span> <span style="color:#0057ae;">$r1</span>; | ||||
620 | <span style="color:#0057ae;">%sets</span><span style="font-weight:bold;">{</span><span style="color:#0057ae;">$p2</span><span style="font-weight:bold;">}</span> <span style="font-weight:bold;">+=</span> <span style="color:#0057ae;">$r2</span>; | ||||
621 | | ||||
622 | <span style="font-weight:bold;">if</span> <span style="color:#0057ae;">$r1</span> <span style="font-weight:bold;">></span> <span style="color:#0057ae;">$r2</span> <span style="font-weight:bold;">{</span> | ||||
623 | <span style="color:#0057ae;">%matches</span><span style="font-weight:bold;">{</span><span style="color:#0057ae;">$p1</span><span style="font-weight:bold;">}++</span>; | ||||
624 | <span style="font-weight:bold;">}</span> <span style="font-weight:bold;">else</span> <span style="font-weight:bold;">{</span> | ||||
625 | <span style="color:#0057ae;">%matches</span><span style="font-weight:bold;">{</span><span style="color:#0057ae;">$p2</span><span style="font-weight:bold;">}++</span>; | ||||
626 | <span style="font-weight:bold;">}</span> | ||||
627 | <span style="font-weight:bold;">}</span> | ||||
628 | | ||||
629 | <span style="font-weight:bold;">for</span> <span style="color:#0057ae;">@sorted</span> <span style="font-weight:bold;">-></span> <span style="color:#0057ae;">$n</span> <span style="font-weight:bold;">{</span> | ||||
630 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">$match-noun</span> <span style="font-weight:bold;">=</span> <span style="color:#0057ae;">%matches</span><span style="font-weight:bold;">{</span><span style="color:#0057ae;">$n</span><span style="font-weight:bold;">}</span> <span style="font-weight:bold;">==</span> <span style="color:#b08000;">1</span> <span style="font-weight:bold;">??</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">match</span><span style="color:#924c9d;">'</span> <span style="font-weight:bold;">!!</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">matches</span><span style="color:#924c9d;">'</span>; | ||||
631 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">$set-noun</span> <span style="font-weight:bold;">=</span> <span style="color:#0057ae;">%sets</span><span style="font-weight:bold;">{</span><span style="color:#0057ae;">$n</span><span style="font-weight:bold;">}</span> <span style="font-weight:bold;">==</span> <span style="color:#b08000;">1</span> <span style="font-weight:bold;">??</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">set</span><span style="color:#924c9d;">'</span> <span style="font-weight:bold;">!!</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;">sets</span><span style="color:#924c9d;">'</span>; | ||||
632 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#0057ae;">$n</span><span style="color:#bf0303;"> has won %matches</span><span style="color:#bf0303;">{</span><span style="color:#0057ae;">$n</span><span style="color:#bf0303;">}</span><span style="color:#bf0303;"> </span><span style="color:#0057ae;">$match-noun</span><span style="color:#bf0303;"> and %sets</span><span style="color:#bf0303;">{</span><span style="color:#0057ae;">$n</span><span style="color:#bf0303;">}</span><span style="color:#bf0303;"> </span><span style="color:#0057ae;">$set-noun</span><span style="color:#924c9d;">"</span>; | ||||
633 | <span style="font-weight:bold;">}</span> | ||||
634 | | ||||
635 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">Math: </span><span style="color:#bf0303;">{ </span><span style="color:#b08000;">1</span><span style="color:#bf0303;"> </span><span style="font-weight:bold;">+</span> <span style="color:#b08000;">2</span><span style="color:#bf0303;"> }</span><span style="color:#924c9d;">"</span>; | ||||
636 | | ||||
637 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">@people</span> <span style="font-weight:bold;">=</span> <span style="color:#924c9d;"><</span><span style="color:#bf0303;">Luke Matthew Mark</span><span style="color:#924c9d;">></span>; | ||||
638 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">The synoptics are: </span><span style="color:#bf0303;">{</span><span style="color:#0057ae;">@people</span><span style="color:#bf0303;">}</span><span style="color:#924c9d;">"</span>; | ||||
639 | | ||||
640 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">{</span><span style="color:#0057ae;">%sets</span><span style="color:#bf0303;">}</span><span style="color:#924c9d;">"</span>; | ||||
641 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">we have </span><span style="color:#0057ae;">@flavors</span><span style="color:#644a9b;">[</span><span style="color:#b08000;">0</span><span style="color:#644a9b;">]</span><span style="color:#924c9d;">"</span>; | ||||
642 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">we have </span><span style="color:#0057ae;">@flavors</span><span style="color:#644a9b;">[]</span><span style="color:#924c9d;">"</span>; | ||||
643 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">we have </span><span style="color:#0057ae;">@flavors</span><span style="color:#644a9b;">.sort()</span><span style="color:#924c9d;">"</span>; | ||||
644 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">we have </span><span style="color:#0057ae;">@flavors</span><span style="color:#644a9b;">.sort.join(</span><span style="color:#924c9d;">'</span><span style="color:#bf0303;">, </span><span style="color:#924c9d;">'</span><span style="color:#644a9b;">)</span><span style="color:#924c9d;">"</span>; | ||||
645 | | ||||
646 | <span style="font-weight:bold;">my</span> <span style="color:#0057ae;">@valid-players</span> <span style="font-weight:bold;">=</span> <span style="color:#0057ae;">$file</span><span style="font-weight:bold;">.</span>get<span style="font-weight:bold;">.</span>words; | ||||
647 | | ||||
648 | <span style="font-weight:bold;">for</span> <span style="color:#0057ae;">$file</span><span style="font-weight:bold;">.</span>lines <span style="font-weight:bold;">-></span> <span style="color:#0057ae;">$line</span> <span style="font-weight:bold;">{</span> | ||||
649 | <span style="font-weight:bold;">my</span> <span style="font-weight:bold;">(</span><span style="color:#0057ae;">$pairing</span><span style="font-weight:bold;">,</span> <span style="color:#0057ae;">$result</span><span style="font-weight:bold;">)</span> <span style="font-weight:bold;">=</span> <span style="color:#0057ae;">$line</span><span style="font-weight:bold;">.</span>split<span style="font-weight:bold;">(</span><span style="color:#924c9d;">'</span><span style="color:#bf0303;"> | </span><span style="color:#924c9d;">'</span><span style="font-weight:bold;">)</span>; | ||||
650 | <span style="font-weight:bold;">my</span> <span style="font-weight:bold;">(</span><span style="color:#0057ae;">$p1</span><span style="font-weight:bold;">,</span> <span style="color:#0057ae;">$p2</span><span style="font-weight:bold;">)</span> <span style="font-weight:bold;">=</span> <span style="color:#0057ae;">$pairing</span><span style="font-weight:bold;">.</span>split<span style="font-weight:bold;">(</span><span style="color:#924c9d;">'</span><span style="color:#bf0303;"> </span><span style="color:#924c9d;">'</span><span style="font-weight:bold;">)</span>; | ||||
651 | <span style="font-weight:bold;">if</span> <span style="color:#0057ae;">$p1</span> <span style="font-weight:bold;">∉</span> <span style="color:#0057ae;">@valid-players</span> <span style="font-weight:bold;">{</span> | ||||
652 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">Warning: '</span><span style="color:#0057ae;">$p1</span><span style="color:#bf0303;">' is not on our list!</span><span style="color:#924c9d;">"</span>; | ||||
653 | <span style="font-weight:bold;">}</span> | ||||
654 | <span style="font-weight:bold;">if</span> <span style="color:#0057ae;">$p2</span> <span style="font-weight:bold;">∉</span> <span style="color:#0057ae;">@valid-players</span> <span style="font-weight:bold;">{</span> | ||||
655 | <span style="font-weight:bold;">say</span> <span style="color:#924c9d;">"</span><span style="color:#bf0303;">Warning: '</span><span style="color:#0057ae;">$p2</span><span style="color:#bf0303;">' is not on our list!</span><span style="color:#924c9d;">"</span>; | ||||
656 | <span style="font-weight:bold;">}</span> | ||||
657 | <span style="font-weight:bold;">}</span> | ||||
658 | </pre></body></html> |