xref: /OpenGrok/opengrok-indexer/src/test/resources/analysis/perl/sample.pl (revision eeb7e5b33d1bcc524fcc9d1d560447b044e286a4)
1*eeb7e5b3SAdam Hornáček#!/usr/bin/perl
2*eeb7e5b3SAdam Hornáček
3*eeb7e5b3SAdam Hornáček#
4*eeb7e5b3SAdam Hornáček# CDDL HEADER START
5*eeb7e5b3SAdam Hornáček#
6*eeb7e5b3SAdam Hornáček# The contents of this file are subject to the terms of the
7*eeb7e5b3SAdam Hornáček# Common Development and Distribution License (the "License").
8*eeb7e5b3SAdam Hornáček# You may not use this file except in compliance with the License.
9*eeb7e5b3SAdam Hornáček#
10*eeb7e5b3SAdam Hornáček# See LICENSE.txt included in this distribution for the specific
11*eeb7e5b3SAdam Hornáček# language governing permissions and limitations under the License.
12*eeb7e5b3SAdam Hornáček#
13*eeb7e5b3SAdam Hornáček# When distributing Covered Code, include this CDDL HEADER in each
14*eeb7e5b3SAdam Hornáček# file and include the License file at LICENSE.txt.
15*eeb7e5b3SAdam Hornáček# If applicable, add the following below this CDDL HEADER, with the
16*eeb7e5b3SAdam Hornáček# fields enclosed by brackets "[]" replaced with your own identifying
17*eeb7e5b3SAdam Hornáček# information: Portions Copyright [yyyy] [name of copyright owner]
18*eeb7e5b3SAdam Hornáček#
19*eeb7e5b3SAdam Hornáček# CDDL HEADER END
20*eeb7e5b3SAdam Hornáček#
21*eeb7e5b3SAdam Hornáček
22*eeb7e5b3SAdam Hornáček#
23*eeb7e5b3SAdam Hornáček# Copyright (c) 2010, 2016, Oracle and/or its affiliates. All rights reserved.
24*eeb7e5b3SAdam Hornáček# Portions Copyright (c) 2017, Chris Fraire <cfraire@me.com>.
25*eeb7e5b3SAdam Hornáček#
26*eeb7e5b3SAdam Hornáček
27*eeb7e5b3SAdam Hornáčekuse warnings;
28*eeb7e5b3SAdam Hornáček
29*eeb7e5b3SAdam Hornáček   use DBI;
30*eeb7e5b3SAdam Hornáček
31*eeb7e5b3SAdam Hornáček   my $database='dbi:DB2:sample';
32*eeb7e5b3SAdam Hornáček   my $user='';
33*eeb7e5b3SAdam Hornáček   my $password='';
34*eeb7e5b3SAdam Hornáček
35*eeb7e5b3SAdam Hornáček   my $dbh = DBI->connect($database, $user, $password)
36*eeb7e5b3SAdam Hornáček      or die "Can't connect to $database: $DBI::errstr";
37*eeb7e5b3SAdam Hornáček
38*eeb7e5b3SAdam Hornáček   my $sth = $dbh->prepare(
39*eeb7e5b3SAdam Hornáček      q{ SELECT firstnme, lastname
40*eeb7e5b3SAdam Hornáček         FROM employee }
41*eeb7e5b3SAdam Hornáček      )
42*eeb7e5b3SAdam Hornáček      or die "Can't prepare statement: $DBI::errstr";
43*eeb7e5b3SAdam Hornáček
44*eeb7e5b3SAdam Hornáček   my $rc = $sth->execute
45*eeb7e5b3SAdam Hornáček      or die "Can't execute statement: $DBI::errstr";
46*eeb7e5b3SAdam Hornáček
47*eeb7e5b3SAdam Hornáček   print "Query will return $sth->{NUM_OF_FIELDS} fields.\n\n";
48*eeb7e5b3SAdam Hornáček   print "$sth->{NAME}->[0]: $sth->{NAME}->[1]\n";
49*eeb7e5b3SAdam Hornáček
50*eeb7e5b3SAdam Hornáček   while (($firstnme, $lastname) = $sth->fetchrow()) {
51*eeb7e5b3SAdam Hornáček      print "$firstnme: $lastname\n";
52*eeb7e5b3SAdam Hornáček   }
53*eeb7e5b3SAdam Hornáček
54*eeb7e5b3SAdam Hornáček   # check for problems which may have terminated the fetch early
55*eeb7e5b3SAdam Hornáček   warn $DBI::errstr if $DBI::err;
56*eeb7e5b3SAdam Hornáček
57*eeb7e5b3SAdam Hornáček   $sth->finish;
58*eeb7e5b3SAdam Hornáček   $dbh->disconnect;
59*eeb7e5b3SAdam Hornáček
60*eeb7e5b3SAdam Hornáček=item snazzle($)
61*eeb7e5b3SAdam Hornáček
62*eeb7e5b3SAdam HornáčekThe snazzle() function will behave in the most spectacular
63*eeb7e5b3SAdam Hornáčekform that you can possibly imagine, not even excepting
64*eeb7e5b3SAdam Hornáčekcybernetic pyrotechnics.
65*eeb7e5b3SAdam Hornáček
66*eeb7e5b3SAdam Hornáček=cut back to the compiler, nuff of this pod stuff!
67*eeb7e5b3SAdam Hornáček
68*eeb7e5b3SAdam Hornáčeksub snazzle($) {
69*eeb7e5b3SAdam Hornáčekmy $thingie = shift;
70*eeb7e5b3SAdam Hornáček}
71*eeb7e5b3SAdam Hornáček
72*eeb7e5b3SAdam Hornáčekmy $x;
73*eeb7e5b3SAdam Hornáček$x=12345;              # integer
74*eeb7e5b3SAdam Hornáček$x=-54321;             # negative integer
75*eeb7e5b3SAdam Hornáček$x=12345.67;           # floating point
76*eeb7e5b3SAdam Hornáček$x=6.02E23;            # scientific notation
77*eeb7e5b3SAdam Hornáček$x=0xffff;             # hexadecimal
78*eeb7e5b3SAdam Hornáček$x=0377;               # octal
79*eeb7e5b3SAdam Hornáček$x=4_294_967_296;      # underline for legibility
80*eeb7e5b3SAdam Hornáček
81*eeb7e5b3SAdam Hornáček#
82*eeb7e5b3SAdam Hornáček# The following should be marked-up in the same manner as for all sigiled
83*eeb7e5b3SAdam Hornáček# identifiers.
84*eeb7e5b3SAdam Hornáček#
85*eeb7e5b3SAdam Hornáček$s = $var;
86*eeb7e5b3SAdam Hornáček$s = \$var;
87*eeb7e5b3SAdam Hornáček$s = ${var};
88*eeb7e5b3SAdam Hornáček
89*eeb7e5b3SAdam Hornáček#
90*eeb7e5b3SAdam Hornáček# include "<<EOF" examples from
91*eeb7e5b3SAdam Hornáček# https://perldoc.perl.org/perlop.html#Quote-and-Quote-like-Operators
92*eeb7e5b3SAdam Hornáček#
93*eeb7e5b3SAdam Hornáček
94*eeb7e5b3SAdam Hornáčekprint <<EOF;
95*eeb7e5b3SAdam HornáčekThe price is $Price.
96*eeb7e5b3SAdam HornáčekEOF
97*eeb7e5b3SAdam Hornáčekprint << "EOF"; # same as above
98*eeb7e5b3SAdam HornáčekThe price is $Price.
99*eeb7e5b3SAdam HornáčekEOF
100*eeb7e5b3SAdam Hornáček
101*eeb7e5b3SAdam Hornáčekmy $cost = <<'VISTA';  # hasta la ...
102*eeb7e5b3SAdam HornáčekThat'll be $10 please, ma'am.
103*eeb7e5b3SAdam HornáčekVISTA
104*eeb7e5b3SAdam Hornáček$cost = <<\VISTA;   # Same thing!
105*eeb7e5b3SAdam HornáčekThat'll be $10 please, ma'am.
106*eeb7e5b3SAdam HornáčekVISTA
107*eeb7e5b3SAdam Hornáček
108*eeb7e5b3SAdam Hornáčekprint << `EOC`; # execute command and get results
109*eeb7e5b3SAdam Hornáčekecho hi there
110*eeb7e5b3SAdam HornáčekEOC
111*eeb7e5b3SAdam Hornáček
112*eeb7e5b3SAdam Hornáčekif ($some_var) {
113*eeb7e5b3SAdam Hornáček	print <<~EOF;
114*eeb7e5b3SAdam Hornáček	This is a here-doc
115*eeb7e5b3SAdam Hornáček	EOF
116*eeb7e5b3SAdam Hornáček}
117*eeb7e5b3SAdam Hornáček
118*eeb7e5b3SAdam Hornáčekprint <<~EOF;
119*eeb7e5b3SAdam Hornáček	This text is not indented
120*eeb7e5b3SAdam Hornáček	This text is indented with two spaces
121*eeb7e5b3SAdam Hornáček		This text is indented with two tabs
122*eeb7e5b3SAdam HornáčekEOF
123*eeb7e5b3SAdam Hornáček
124*eeb7e5b3SAdam Hornáčekprint <<~ 'EOF';
125*eeb7e5b3SAdam Hornáček	This text is not indented
126*eeb7e5b3SAdam Hornáček	This text is indented with two spaces
127*eeb7e5b3SAdam Hornáček		This text is indented with two tabs
128*eeb7e5b3SAdam HornáčekEOF
129*eeb7e5b3SAdam Hornáček
130*eeb7e5b3SAdam Hornáčekprint <<"foo", <<"bar"; # you can stack them
131*eeb7e5b3SAdam HornáčekI said foo.
132*eeb7e5b3SAdam Hornáčekfoo
133*eeb7e5b3SAdam HornáčekI said bar.
134*eeb7e5b3SAdam Hornáčekbar
135*eeb7e5b3SAdam Hornáček
136*eeb7e5b3SAdam Hornáčekmyfunc(<< "THIS", 23, <<'THAT');
137*eeb7e5b3SAdam HornáčekHere's a line or
138*eeb7e5b3SAdam Hornáčektwo
139*eeb7e5b3SAdam HornáčekTHIS
140*eeb7e5b3SAdam Hornáčekand here's another.
141*eeb7e5b3SAdam HornáčekTHAT
142*eeb7e5b3SAdam Hornáček
143*eeb7e5b3SAdam Hornáček#
144*eeb7e5b3SAdam Hornáček# Include some samples for the shortcut // syntax of m//
145*eeb7e5b3SAdam Hornáček#
146*eeb7e5b3SAdam Hornáček
147*eeb7e5b3SAdam Hornáček$var =~ /pP \"\'\(\)\<\>\{\}\[\]\/\# et $var./ && print;
148*eeb7e5b3SAdam Hornáček$var !~/pP \"\'\(\)\<\>\{\}\[\]\/\# et $var./ && print;
149*eeb7e5b3SAdam Hornáček/pP \"\'\(\)\<\>\{\}\[\]\/\# et $var./ && print;
150*eeb7e5b3SAdam Hornáček(/pP \"\'\(\)\<\>\{\}\[\]\/\# et $var./) && print;
151*eeb7e5b3SAdam Hornáčekif (/pP \"\'\(\)\<\>\{\}\[\]\/\# et $var./) { print; }
152*eeb7e5b3SAdam Hornáčekif (1 && /pP \"\'\(\)\<\>\{\}\[\]\/\# et $var./) { print; }
153*eeb7e5b3SAdam Hornáčekif (0 || /pP \"\'\(\)\<\>\{\}\[\]\/\# et $var./) { print; }
154*eeb7e5b3SAdam Hornáčekprint or/pP \"\'\(\)\<\>\{\}\[\]\/\# et $var./;
155*eeb7e5b3SAdam Hornáčekprint if /pP \"\'\(\)\<\>\{\}\[\]\/\# et $var./;
156*eeb7e5b3SAdam Hornáčekprint unless
157*eeb7e5b3SAdam Hornáček
158*eeb7e5b3SAdam Hornáček
159*eeb7e5b3SAdam Hornáček	/pP \"\'\(\)\<\>\{\}\[\]\/\# et $var./;
160*eeb7e5b3SAdam Hornáček
161*eeb7e5b3SAdam Hornáčekmy @o = $contents =~
162*eeb7e5b3SAdam Hornáček
163*eeb7e5b3SAdam Hornáček
164*eeb7e5b3SAdam Hornáček    /^(?>\S+) \s* := \s* LINKSRC \s* = \s* \S+/mxg;
165*eeb7e5b3SAdam Hornáček
166*eeb7e5b3SAdam Hornáčekforeach my $v (@o) { # This loop shouldn't mistakenly be inside the previous m//
167*eeb7e5b3SAdam Hornáček	print $v;
168*eeb7e5b3SAdam Hornáček}
169*eeb7e5b3SAdam Hornáček
170*eeb7e5b3SAdam Hornáček#
171*eeb7e5b3SAdam Hornáček# The following table is from
172*eeb7e5b3SAdam Hornáček# https://perldoc.perl.org/perlop.html#Quote-and-Quote-like-Operators .
173*eeb7e5b3SAdam Hornáček# The samples following are generated per the table.
174*eeb7e5b3SAdam Hornáček#
175*eeb7e5b3SAdam Hornáček#	Customary Generic     Meaning	     Interpolates
176*eeb7e5b3SAdam Hornáček#	''	 q{}	      Literal		  no
177*eeb7e5b3SAdam Hornáček#	""	qq{}	      Literal		  yes
178*eeb7e5b3SAdam Hornáček#	``	qx{}	      Command		  yes*
179*eeb7e5b3SAdam Hornáček#		qw{}	     Word list		  no
180*eeb7e5b3SAdam Hornáček#	//	 m{}	   Pattern match	  yes*
181*eeb7e5b3SAdam Hornáček#		qr{}	      Pattern		  yes*
182*eeb7e5b3SAdam Hornáček#		 s{}{}	    Substitution	  yes*
183*eeb7e5b3SAdam Hornáček#		tr{}{}	  Transliteration	  no (but see below)
184*eeb7e5b3SAdam Hornáček#		 y{}{}
185*eeb7e5b3SAdam Hornáček#
186*eeb7e5b3SAdam Hornáček
187*eeb7e5b3SAdam Hornáček$s = 'pP \"\'\(\)\<\>\{\}\[\]\/\# et $var.';
188*eeb7e5b3SAdam Hornáček$s = q{pP {{nest}}\"\'\(\)\<\>\[\]\/\# et $var.};
189*eeb7e5b3SAdam Hornáček$s = q[pP [[nest]]\"\'\(\)\<\>\{\}\/\# et $var.];
190*eeb7e5b3SAdam Hornáček$s = q(pP ((nest))\"\'\<\>\{\}\[\]\/\# et $var.);
191*eeb7e5b3SAdam Hornáček$s = q<pP <<nest>>\"\'\(\)\{\}\[\]\/\# et $var.>;
192*eeb7e5b3SAdam Hornáček$s = q/pP \"\'\(\)\<\>\{\}\[\]\/\# et $var./;
193*eeb7e5b3SAdam Hornáček$s = q zpP \"\'\(\)\<\>\{\}\[\]\/\# et $var.z;
194*eeb7e5b3SAdam Hornáček$s = q#pP \"\'\(\)\<\>\{\}\[\]\/\# et $var.#;
195*eeb7e5b3SAdam Hornáček$s = q'pP \"\'\(\)\<\>\{\}\[\]\/\# et $var.';
196*eeb7e5b3SAdam Hornáček$s = q"pP \"\'\(\)\<\>\{\}\[\]\/\# et $var.";
197*eeb7e5b3SAdam Hornáček$s = "pP \"\'\(\)\<\>\{\}\[\]\/\# et $var.";
198*eeb7e5b3SAdam Hornáček$s = qq{pP {{nest}}\"\'\(\)\<\>\[\]\/\# et $var.};
199*eeb7e5b3SAdam Hornáček$s = qq[pP [[nest]]\"\'\(\)\<\>\{\}\/\# et $var.];
200*eeb7e5b3SAdam Hornáček$s = qq(pP ((nest))\"\'\<\>\{\}\[\]\/\# et $var.);
201*eeb7e5b3SAdam Hornáček$s = qq<pP <<nest>>\"\'\(\)\{\}\[\]\/\# et $var.>;
202*eeb7e5b3SAdam Hornáček$s = qq/pP \"\'\(\)\<\>\{\}\[\]\/\# et $var./;
203*eeb7e5b3SAdam Hornáček$s = qq zpP \"\'\(\)\<\>\{\}\[\]\/\# et $var.z;
204*eeb7e5b3SAdam Hornáček$s = qq#pP \"\'\(\)\<\>\{\}\[\]\/\# et $var.#;
205*eeb7e5b3SAdam Hornáček$s = qq'pP \"\'\(\)\<\>\{\}\[\]\/\# et $var.';
206*eeb7e5b3SAdam Hornáček$s = qq"pP \"\'\(\)\<\>\{\}\[\]\/\# et $var.";
207*eeb7e5b3SAdam Hornáček$s = `pP \"\'\(\)\<\>\{\}\[\]\/\# et $var.`;
208*eeb7e5b3SAdam Hornáček$s = qx{pP {{nest}}\"\'\(\)\<\>\[\]\/\# et $var.};
209*eeb7e5b3SAdam Hornáček$s = qx[pP [[nest]]\"\'\(\)\<\>\{\}\/\# et $var.];
210*eeb7e5b3SAdam Hornáček$s = qx(pP ((nest))\"\'\<\>\{\}\[\]\/\# et $var.);
211*eeb7e5b3SAdam Hornáček$s = qx<pP <<nest>>\"\'\(\)\{\}\[\]\/\# et $var.>;
212*eeb7e5b3SAdam Hornáček$s = qx/pP \"\'\(\)\<\>\{\}\[\]\/\# et $var./;
213*eeb7e5b3SAdam Hornáček$s = qx zpP \"\'\(\)\<\>\{\}\[\]\/\# et $var.z;
214*eeb7e5b3SAdam Hornáček$s = qx#pP \"\'\(\)\<\>\{\}\[\]\/\# et $var.#;
215*eeb7e5b3SAdam Hornáček$s = qx'pP \"\'\(\)\<\>\{\}\[\]\/\# et $var.';
216*eeb7e5b3SAdam Hornáček$s = qx"pP \"\'\(\)\<\>\{\}\[\]\/\# et $var.";
217*eeb7e5b3SAdam Hornáčekuse vars qw{$Cannot %embed &punctuation *here @except $sigils};
218*eeb7e5b3SAdam Hornáčekuse vars qw[$Cannot %embed &punctuation *here @except $sigils];
219*eeb7e5b3SAdam Hornáčekuse vars qw($Cannot %embed &punctuation *here @except $sigils);
220*eeb7e5b3SAdam Hornáčekuse vars qw<$Cannot %embed &punctuation *here @except $sigils>;
221*eeb7e5b3SAdam Hornáčekuse vars qw/$Cannot %embed &punctuation *here @except $sigils/;
222*eeb7e5b3SAdam Hornáčekuse vars qw z$Cannot %embed &punctuation *here @except $sigilsz;
223*eeb7e5b3SAdam Hornáčekuse vars qw#$Cannot %embed &punctuation *here @except $sigils#;
224*eeb7e5b3SAdam Hornáčekuse vars qw'$Cannot %embed &punctuation *here @except $sigils';
225*eeb7e5b3SAdam Hornáčekuse vars qw"$Cannot %embed &punctuation *here @except $sigils";
226*eeb7e5b3SAdam Hornáček$s = /pP \"\'\(\)\<\>\{\}\[\]\/\# et $var./;
227*eeb7e5b3SAdam Hornáček$s = m{pP {{nest}}\"\'\(\)\<\>\[\]\/\# et $var.};
228*eeb7e5b3SAdam Hornáček$s = m[pP [[nest]]\"\'\(\)\<\>\{\}\/\# et $var.];
229*eeb7e5b3SAdam Hornáček$s = m(pP ((nest))\"\'\<\>\{\}\[\]\/\# et $var.);
230*eeb7e5b3SAdam Hornáček$s = m<pP <<nest>>\"\'\(\)\{\}\[\]\/\# et $var.>;
231*eeb7e5b3SAdam Hornáček$s = m/pP \"\'\(\)\<\>\{\}\[\]\/\# et $var./;
232*eeb7e5b3SAdam Hornáček$s = m zpP \"\'\(\)\<\>\{\}\[\]\/\# et $var.z;
233*eeb7e5b3SAdam Hornáček$s = m#pP \"\'\(\)\<\>\{\}\[\]\/\# et $var.#;
234*eeb7e5b3SAdam Hornáček$s = m'pP \"\'\(\)\<\>\{\}\[\]\/\# et $var.';
235*eeb7e5b3SAdam Hornáček$s = m"pP \"\'\(\)\<\>\{\}\[\]\/\# et $var.";
236*eeb7e5b3SAdam Hornáček$s = qr{pP {{nest}}\"\'\(\)\<\>\[\]\/\# et $var.};
237*eeb7e5b3SAdam Hornáček$s = qr[pP [[nest]]\"\'\(\)\<\>\{\}\/\# et $var.];
238*eeb7e5b3SAdam Hornáček$s = qr(pP ((nest))\"\'\<\>\{\}\[\]\/\# et $var.);
239*eeb7e5b3SAdam Hornáček$s = qr<pP <<nest>>\"\'\(\)\{\}\[\]\/\# et $var.>;
240*eeb7e5b3SAdam Hornáček$s = qr/pP \"\'\(\)\<\>\{\}\[\]\/\# et $var./;
241*eeb7e5b3SAdam Hornáček$s = qr zpP \"\'\(\)\<\>\{\}\[\]\/\# et $var.z;
242*eeb7e5b3SAdam Hornáček$s = qr#pP \"\'\(\)\<\>\{\}\[\]\/\# et $var.#;
243*eeb7e5b3SAdam Hornáček$s = qr'pP \"\'\(\)\<\>\{\}\[\]\/\# et $var.';
244*eeb7e5b3SAdam Hornáček$s = qr"pP \"\'\(\)\<\>\{\}\[\]\/\# et $var.";
245*eeb7e5b3SAdam Hornáček$s = s{pP {{nest}}\"\'\(\)\<\>\[\]\/\# et $var.
246*eeb7e5b3SAdam Hornáček    }{pP {{nest}}\"\'\(\)\<\>\[\]\/\# et $var.}x;
247*eeb7e5b3SAdam Hornáček$s = s[pP [[nest]]\"\'\(\)\<\>\{\}\/\# et $var.
248*eeb7e5b3SAdam Hornáček    ][pP [[nest]]\"\'\(\)\<\>\{\}\/\# et $var.]x;
249*eeb7e5b3SAdam Hornáček$s = s(pP ((nest))\"\'\<\>\{\}\[\]\/\# et $var.
250*eeb7e5b3SAdam Hornáček    )(pP ((nest))\"\'\<\>\{\}\[\]\/\# et $var.)x;
251*eeb7e5b3SAdam Hornáček$s = s<pP <<nest>>\"\'\(\)\{\}\[\]\/\# et $var.
252*eeb7e5b3SAdam Hornáček    ><pP <<nest>>\"\'\(\)\{\}\[\]\/\# et $var.>x;
253*eeb7e5b3SAdam Hornáček$s = s/pP \"\'\(\)\<\>\{\}\[\]\/\# et $var./
254*eeb7e5b3SAdam Hornáček    pP \"\'\(\)\<\>\{\}\[\]\/\# et $var./x;
255*eeb7e5b3SAdam Hornáček$s = s zpP \"\'\(\)\<\>\{\}\[\]\/\# et $var.z
256*eeb7e5b3SAdam Hornáček    pP \"\'\(\)\<\>\{\}\[\]\/\# et $var.zx;
257*eeb7e5b3SAdam Hornáček$s = s#pP \"\'\(\)\<\>\{\}\[\]\/\# et $var.#
258*eeb7e5b3SAdam Hornáček    pP \"\'\(\)\<\>\{\}\[\]\/\# et $var.#x;
259*eeb7e5b3SAdam Hornáček$s = s'pP \"\'\(\)\<\>\{\}\[\]\/\# et $var.'
260*eeb7e5b3SAdam Hornáček    pP \"\'\(\)\<\>\{\}\[\]\/\# et $var.'x;
261*eeb7e5b3SAdam Hornáček$s = s"pP \"\'\(\)\<\>\{\}\[\]\/\# et $var."
262*eeb7e5b3SAdam Hornáček    pP \"\'\(\)\<\>\{\}\[\]\/\# et $var."x;
263*eeb7e5b3SAdam Hornáček$s = tr{pP \"\'\(\)\<\>\[\]\/\# fin.}{pP \"\'\(\)\<\>\[\]\/\# fin.};
264*eeb7e5b3SAdam Hornáček$s = tr[pP \"\'\(\)\<\>\{\}\/\# fin.][pP \"\'\(\)\<\>\{\}\/\# fin.];
265*eeb7e5b3SAdam Hornáček$s = tr(pP \"\'\<\>\{\}\[\]\/\# fin.)(pP \"\'\<\>\{\}\[\]\/\# fin.);
266*eeb7e5b3SAdam Hornáček$s = tr<pP \"\'\(\)\{\}\[\]\/\# fin.><pP \"\'\(\)\{\}\[\]\/\# fin.>;
267*eeb7e5b3SAdam Hornáček$s = tr/pP \"\'\(\)\<\>\{\}\[\]\/\# fin./pP \"\'\(\)\<\>\{\}\[\]\/\# fin./;
268*eeb7e5b3SAdam Hornáček$s = tr zpP \"\'\(\)\<\>\{\}\[\]\/\# fin.zpP \"\'\(\)\<\>\{\}\[\]\/\# fin.z;
269*eeb7e5b3SAdam Hornáček$s = tr#pP \"\'\(\)\<\>\{\}\[\]\/\# fin.#pP \"\'\(\)\<\>\{\}\[\]\/\# fin.#;
270*eeb7e5b3SAdam Hornáček$s = tr'pP \"\'\(\)\<\>\{\}\[\]\/\# fin.'pP \"\'\(\)\<\>\{\}\[\]\/\# fin.';
271*eeb7e5b3SAdam Hornáček$s = tr"pP \"\'\(\)\<\>\{\}\[\]\/\# fin."pP \"\'\(\)\<\>\{\}\[\]\/\# fin.";
272*eeb7e5b3SAdam Hornáček$s = y{pP \"\'\(\)\<\>\[\]\/\# fin.}{pP \"\'\(\)\<\>\[\]\/\# fin.};
273*eeb7e5b3SAdam Hornáček$s = y[pP \"\'\(\)\<\>\{\}\/\# fin.][pP \"\'\(\)\<\>\{\}\/\# fin.];
274*eeb7e5b3SAdam Hornáček$s = y(pP \"\'\<\>\{\}\[\]\/\# fin.)(pP \"\'\<\>\{\}\[\]\/\# fin.);
275*eeb7e5b3SAdam Hornáček$s = y<pP \"\'\(\)\{\}\[\]\/\# fin.><pP \"\'\(\)\{\}\[\]\/\# fin.>;
276*eeb7e5b3SAdam Hornáček$s = y/pP \"\'\(\)\<\>\{\}\[\]\/\# fin./pP \"\'\(\)\<\>\{\}\[\]\/\# fin./;
277*eeb7e5b3SAdam Hornáček$s = y zpP \"\'\(\)\<\>\{\}\[\]\/\# fin.zpP \"\'\(\)\<\>\{\}\[\]\/\# fin.z;
278*eeb7e5b3SAdam Hornáček$s = y#pP \"\'\(\)\<\>\{\}\[\]\/\# fin.#pP \"\'\(\)\<\>\{\}\[\]\/\# fin.#;
279*eeb7e5b3SAdam Hornáček$s = y'pP \"\'\(\)\<\>\{\}\[\]\/\# fin.'pP \"\'\(\)\<\>\{\}\[\]\/\# fin.';
280*eeb7e5b3SAdam Hornáček$s = y"pP \"\'\(\)\<\>\{\}\[\]\/\# fin."pP \"\'\(\)\<\>\{\}\[\]\/\# fin.";
281*eeb7e5b3SAdam Hornáček
282*eeb7e5b3SAdam Hornáček# more sigiled identifier tests
283*eeb7e5b3SAdam Hornáčekprint "$abc\n${abc}\n", '$abc\n${abc}\n', "\n";
284*eeb7e5b3SAdam Hornáček$s = $ {var};
285*eeb7e5b3SAdam Hornáček$s = ${ var };
286*eeb7e5b3SAdam Hornáčekprint qr z$abczix, "\n";
287*eeb7e5b3SAdam Hornáčekprint $0 if $!;
288*eeb7e5b3SAdam Hornáčekprint $^V;
289*eeb7e5b3SAdam Hornáčekprint "${^GLOBAL_PHASE} is what?";
290*eeb7e5b3SAdam Hornáček
291*eeb7e5b3SAdam Hornáček# more quote-like tests
292*eeb7e5b3SAdam Hornáčekqr{\.[a-z]+$}i;
293*eeb7e5b3SAdam Hornáček
294*eeb7e5b3SAdam Hornáček# should back to YYINITIAL after HERE document
295*eeb7e5b3SAdam Hornáčekprint <<EOF;
296*eeb7e5b3SAdam Hornáček	Some text
297*eeb7e5b3SAdam HornáčekEOF
298*eeb7e5b3SAdam Hornáček/\b sentinel \b/ && print; # This should heuristically match as m//
299*eeb7e5b3SAdam Hornáček
300*eeb7e5b3SAdam Hornáček# spaced sigil
301*eeb7e5b3SAdam Hornáček$ svar = 1;
302*eeb7e5b3SAdam Hornáček
303*eeb7e5b3SAdam Hornáček# more quote-like tests
304*eeb7e5b3SAdam Hornáčeks{\.[a-z]+$}{no}i;
305*eeb7e5b3SAdam Hornáčekmy $a = qr$abc$ix;
306*eeb7e5b3SAdam Hornáček
307*eeb7e5b3SAdam Hornáček# more POD tests
308*eeb7e5b3SAdam Hornáček=cut for no purpose
309*eeb7e5b3SAdam Hornáčekprint "1\n";
310*eeb7e5b3SAdam Hornáček
311*eeb7e5b3SAdam Hornáček# POD odd case
312*eeb7e5b3SAdam Hornáček=ITEM fubar($)
313*eeb7e5b3SAdam Hornáček=CUT back -- not really though
314*eeb7e5b3SAdam Hornáčekn0n{(sense]
315*eeb7e5b3SAdam Hornáček=cut back really
316*eeb7e5b3SAdam Hornáčekprint "1\n";
317*eeb7e5b3SAdam Hornáček
318*eeb7e5b3SAdam Hornáček# format FORMLIST tests
319*eeb7e5b3SAdam Hornáček format STDOUT =
320*eeb7e5b3SAdam Hornáček@<<<<<<   @||||||   @>>>>>>
321*eeb7e5b3SAdam Hornáček# comment <args to follow>
322*eeb7e5b3SAdam Hornáček"left",  substr($var, 0, 2), "\$right"
323*eeb7e5b3SAdam Hornáček ...
324*eeb7e5b3SAdam Hornáček print
325*eeb7e5b3SAdam Hornáček.
326*eeb7e5b3SAdam Hornáčekprint "1\n";
327*eeb7e5b3SAdam Hornáček
328*eeb7e5b3SAdam Hornáček# some tests for syntax near "s" characters
329*eeb7e5b3SAdam Hornáčekmy $this = {};
330*eeb7e5b3SAdam Hornáčekif (! -s $this->{filename}) {
331*eeb7e5b3SAdam Hornáček	open UCFILE, "create_file -s $this->{start} -e $this->{end} |" or exit 0;
332*eeb7e5b3SAdam Hornáček} else {
333*eeb7e5b3SAdam Hornáček	open UCFILE, "$this->{filename}" or exit 0;
334*eeb7e5b3SAdam Hornáček}
335*eeb7e5b3SAdam Hornáček
336*eeb7e5b3SAdam Hornáček# more quote-like tests
337*eeb7e5b3SAdam Hornáčekmy $KK = "b";
338*eeb7e5b3SAdam Hornáček$bref = {'b' => 5};
339*eeb7e5b3SAdam Hornáček%bhash = ('b' => 6);
340*eeb7e5b3SAdam Hornáček{ print $bref -> {$KK} / $bhash { $KK }, "$bref->{$KK} $bhash{$KK} $b {\n"; }
341*eeb7e5b3SAdam Hornáček$bref->{int} = -1 * $bref->{int} / $bref->{a_rate}; # do not infer a m//
342*eeb7e5b3SAdam Hornáček$bref->{"int"} = -1 * $bref->{"int"} / $bref->{"a_rate"}; # do not infer a m//
343*eeb7e5b3SAdam Hornáček$var = qq[select t.col
344*eeb7e5b3SAdam Hornáček	from $table
345*eeb7e5b3SAdam Hornáček	where key = $k
346*eeb7e5b3SAdam Hornáček	and k1 = "$r->[0]->[0]"
347*eeb7e5b3SAdam Hornáček	and k2 = "$s->{ code }->{ v }"
348*eeb7e5b3SAdam Hornáček	and k3 = "$t ->[ 0 ]->{ v }"
349*eeb7e5b3SAdam Hornáček	and k4 = "$u ->{ k }->[ 0 ]"
350*eeb7e5b3SAdam Hornáček	order by value_date DESC];
351*eeb7e5b3SAdam Hornáčekpush @$html, "<TD width=\"20%\">";
352*eeb7e5b3SAdam Hornáčekprint "%\abc\n", %\, "abc\n";
353*eeb7e5b3SAdam Hornáček# some comment
354*eeb7e5b3SAdam Hornáčekpush @arr, "'$key'=>" . 'q[' . $val . '],';
355*eeb7e5b3SAdam Hornáček#qq[$var]
356*eeb7e5b3SAdam Hornáček
357*eeb7e5b3SAdam Hornáček# more HERE-document tests
358*eeb7e5b3SAdam Hornáčekmyfunc2(<< "THIS", $var, <<~'THAT', $var, <<OTHER, <<\ELSE, <<`Z`);
359*eeb7e5b3SAdam HornáčekHere's a $line1
360*eeb7e5b3SAdam HornáčekTHIS
361*eeb7e5b3SAdam Hornáček	Here's a $line2
362*eeb7e5b3SAdam Hornáček	THAT
363*eeb7e5b3SAdam HornáčekHere's a $line3
364*eeb7e5b3SAdam HornáčekOTHER
365*eeb7e5b3SAdam HornáčekHere's a $line4
366*eeb7e5b3SAdam HornáčekELSE
367*eeb7e5b3SAdam HornáčekHere's a $line5
368*eeb7e5b3SAdam HornáčekHere's a \$line6
369*eeb7e5b3SAdam HornáčekZ
370*eeb7e5b3SAdam Hornáček/\b sentinel \b/ && print; # This should heuristically match as m//
371*eeb7e5b3SAdam Hornáček
372*eeb7e5b3SAdam Hornáček# more quote-like tests
373*eeb7e5b3SAdam Hornáčekfor my $k (grep /=/, split /;/, $d, -1) {
374*eeb7e5b3SAdam Hornáček	print "1\n";
375*eeb7e5b3SAdam Hornáček}
376*eeb7e5b3SAdam Hornáček
377*eeb7e5b3SAdam Hornáček# more format tests
378*eeb7e5b3SAdam Hornáček%a = (
379*eeb7e5b3SAdam Hornáček    format => "%s");
380*eeb7e5b3SAdam Hornáček format=
381*eeb7e5b3SAdam Hornáček@<<<<<<   @||||||   @>>>>>>
382*eeb7e5b3SAdam Hornáček"left",  "middle", "right"
383*eeb7e5b3SAdam Hornáček.
384*eeb7e5b3SAdam Hornáčekprint "1\n";
385*eeb7e5b3SAdam Hornáčekprint 'http://example.com';
386