31:
620:
files, for example, field collision can occur whenever an author attempts to include a comma as part of a field value (e.g., salary = "$ 30,000"), and record delimiter collision would occur whenever a field contained multiple lines. Both record and field delimiter collision occur frequently in text
1292:
is a programming and systems administration technique that also helps to avoid delimiter collision in some circumstances. This technique is contrasted from the other approaches described above because it is more complicated, and therefore not suitable for small applications and simple data storage
1029:
is a special type of delimiter that is specifically designed to resist delimiter collision. It works by allowing the author to specify a sequence of characters that is guaranteed to always indicate a boundary between parts in a multi-part message, with no other possible interpretation.
656:
Because delimiter collision is a very common problem, various methods for avoiding it have been invented. Some authors may attempt to avoid the problem by choosing a delimiter character (or sequence of characters) that is not likely to appear in the data stream itself. This
608:
is a problem that occurs when an author or programmer introduces delimiters into text without actually intending them to be interpreted as boundaries between separate regions. In the case of XML, for example, this can occur whenever an author attempts to specify an
899:
In contrast to escape sequences and escape characters, dual delimiters provide yet another way to avoid delimiter collision. Some languages, for example, allow the use of either a single quote (') or a double quote (") to specify a string literal. For example, in
1041:, or some other distinguishing mark. Alternatively, the content may be scanned to guarantee that a delimiter does not appear in the text. This may allow the delimiter to be shorter or simpler, and increase the human readability of the document. (
661:
approach may be suitable, but it necessarily depends on a correct guess of what will appear in the data stream, and offers no security against malicious collisions. Other, more formal conventions are therefore applied as well.
949:
produces the desired output without requiring escapes. Like regular escaping it can, however, become confusing when many quotes are used. The code to print the above source code would look more confusing:
166:, for example, is an alternate method (without the use of delimiters) that uses a length field at the start of a data stream to specify the number of characters that the data stream contains.
670:
The ASCII and
Unicode character sets were designed to solve this problem by the provision of non-printing characters that can be used as delimiters. These are the range from ASCII 28 to 31.
1033:
The delimiter is frequently generated from a random sequence of characters that is statistically improbable to occur in the content. This may be followed by an identifying mark such as a
1479:
This prevents delimiter collision and ensures that incompatible characters will not appear inside the HTML code, regardless of what characters appear in the original (decoded) text.
153:
1897:
1379:
1954:
117:
624:
In some contexts, a malicious user or attacker may seek to exploit this problem intentionally. Consequently, delimiter collision can be the source of security
403:
837:
Escape sequences are similar to escape characters, except they usually consist of some kind of mnemonic instead of just a single character. One use is in
2052:
1981:
1936:
222:
Bracket delimiters, also called block delimiters, region delimiters, or balanced delimiters, mark both the start and end of a region of text.
2180:
2154:
2036:
2010:
1968:
1880:
1854:
1820:
1786:
1760:
1595:
1243:. A here document starts by describing what the end sequence will be and continues until that sequence is seen at the start of a new line.
883:
One drawback of escape sequences, when used by people, is the need to memorize the codes that represent individual characters (see also:
392:
Historically, computing platforms have used certain delimiters by convention. The following tables depict a few examples for comparison.
1013:, which allow any convenient character to act as a delimiter. Although this method is more flexible, few languages support it. Perl and
2334:
1297:, to ensure that delimiter or other significant characters do not appear in transmitted data. The purpose is to prevent multilayered
2276:
2247:
2217:
2129:
2100:
2073:
1734:
1709:
1676:
1650:
1624:
1413:
Alternatively, any encoding could be used that doesn't include characters that have special meaning in the context, such as base64:
1277:
It's very hard to encode a string with "certain characters". Newlines, commas, and other characters can cause delimiter collisions.
1541:
1142:
The syntax is flexible enough to specify match operations with alternate delimiters, making it easy to avoid delimiter collision:
616:
In most file types there is both a field delimiter and a record delimiter, both of which are subject to collision. In the case of
932:
In contrast to escape sequences and escape characters, padding delimiters provide yet another way to avoid delimiter collision.
2329:
958:"print ""Nancy said """"Hello World!"""" to the crowd."""
361:
920:
produces the desired output without requiring escapes. This approach, however, only works when the string does not contain
2300:
1236:
1227:
allows the inclusion of arbitrary content by describing a special end sequence. Many languages support this including
1078:
1014:
888:
629:
251:
1498:
1331:
in which the VIEWSTATE value contains characters that are incompatible with the delimiters of the HTML tag itself:
884:
806:
2324:
2319:
625:
190:
55:
968:
In contrast to dual delimiters, multiple delimiters are even more flexible for avoiding delimiter collision.
580:
86:
74:. Another example of a delimiter is the time gap used to separate letters and words in the transmission of
617:
344:
186:
71:
35:
126:
805:
text can be rendered unreadable when littered with numerous escape characters, a problem referred to as
47:
1513:
1316:
web development technology, and is closely associated with the "VIEWSTATE" component of that system.
1010:
645:
2304:
1372:
211:
90:
1923:
1084:
813:
208:
204:
fname,lname,age,salary nancy,davolio,33,$ 30000 erin,borakova,28,$ 25250 tony,raphael,35,$ 28700
1898:"Jakarta Server Pages Specification, Version 4.0akarta Server Pages Specification, Version 4.0"
2272:
2243:
2213:
2176:
2150:
2125:
2096:
2069:
2032:
2006:
1948:
1876:
1850:
1816:
1782:
1756:
1730:
1705:
1672:
1646:
1620:
1591:
1493:
1232:
460:
327:
1767:
references C-style programming languages prominently featuring curly brackets and semicolons.
1445:
1298:
936:, for example, uses double quotes as delimiters. This is similar to escaping the delimiter.
822:
they require a mechanism to "escape the escapes" when not intended as escape characters; and
798:
786:
749:
2296:
1806:
1503:
1102:
For example, a simple match operation may be specified in Perl with the following syntax:
789:
solves the problem of both field and record delimiters that appear in a text data stream.
728:
567:
254:
programming language syntax is cited as recognizable primarily by its use of parentheses.
174:
Delimiters may be characterized as field and record delimiters, or as bracket delimiters.
2269:
Developing and
Implementing Web Applications with Visual C# . NET and Visual Studio . NET
96:
1533:
2236:
1843:
1828:
1508:
1302:
1289:
1062:
838:
782:
770:
707:
545:
310:
198:
163:
120:
24:
2313:
2090:
2000:
1562:
1405:"BookTitle:Nancy doesn't say "Hello World!" anymore."
1224:
1050:
641:
610:
1324:
The following simplified example demonstrates how this technique works in practice.
1280:
By using a special end sequence all manner of characters are allowed in the string.
182:
Field delimiters separate data fields. Record delimiters separate groups of fields.
1602:
describing the method in
Hollerith notation under the Fortran programming language.
1066:
933:
825:
although easy to type, they can be cryptic to someone unfamiliar with the language.
712:
End of file. Or between a concatenation of what might otherwise be separate files.
378:
20:
801:. From a language design standpoint, these are adequate, but they have drawbacks:
1810:
632:. Malicious users can take advantage of delimiter collision in languages such as
1538:
Federal
Standard 1037C - Telecommunications: Glossary of Telecommunication Terms
1436:"Qm9va1RpdGxlOk5hbmN5IGRvZXNuJ3Qgc2F5ICJIZWxsbyBXb3JsZCEiIGFueW1vcmUu"
439:
194:
159:
82:
59:
19:
This article is about delimiters in computing. For delimiters in human use, see
1471:"BookTitle:Nancy%20doesn%27t%20say%20%22Hello%20World!%22%20anymore."
1153:'Nancy said "http://Hello/World.htm" is not a valid address.'
30:
1697:
75:
51:
2283:(describes the use of Base64 encoding and VIEWSTATE inside HTML source code)
1309:
1038:
549:
538:
500:
482:
1643:
Mastering
Regular Expressions: Powerful Techniques for Perl and Other Tools
1375:, and would therefore not work properly in a "real world" deployed system.
1288:
Although principally used as a mechanism for text encoding of binary data,
1263:
It's very hard to encode a string with "certain characters".
1328:
1069:
as a means of specifying boundaries between independent regions in text.
944:"Nancy said ""Hello World!"" to the crowd."
158:
Delimiters represent one of various means of specifying boundaries in a
38:(CSV) text file. The commas (shown in red) are used as field delimiters.
1382:
can be used. In this case """ stands in for the double-quote:
1313:
677:
562:
527:
510:
495:
490:
293:
268:
247:
2196:
1972:
1927:
1266:
Newlines, commas, and other characters can cause delimiter collisions.
2210:
Internet
Security: Cryptographic Principles, Algorithms and Protocols
1985:
1940:
1902:
1294:
553:
514:
50:
for specifying the boundary between separate, independent regions in
16:
Characters that specify the boundary between regions in a data stream
1087:, alternate delimiters may also be used to simplify the syntax for
1001:
qq(Nancy doesn't want to say "Hello World!" anymore.)
992:
qq@Nancy doesn't want to say "Hello World!" anymore.@
983:
qq^Nancy doesn't want to say "Hello World!" anymore.^
1488:
1293:
formats. The technique employs a special encoding scheme, such as
557:
486:
456:
63:
29:
1240:
1096:
1046:
1034:
972:
901:
842:
810:
637:
532:
522:
518:
2254:(an example usage of ASCII armoring in encryption applications)
2224:(an example usage of ASCII armoring in encryption applications)
872:"Nancy said \"Hello World!\" to the crowd."
1228:
633:
2043:
describing solutions for embedded-delimiter problems p. 472.
2053:
Discussion on ASCII Delimited Text vs CSV and Tab
Delimited
1113:'Nancy said "Hello World!" to the crowd.'
912:'Nancy said "Hello World!" to the crowd.'
733:
Between sections of data. Not needed in simple data files.
819:
text becomes difficult to parse through regular expression
2147:
Computational
Linguistics and Intelligent Text Processing
1061:
Some programming and computer languages allow the use of
853:"Nancy said \x22Hello World!\x22 to the crowd."
841:
that include a doublequote (") character. For example in
85:, delimiters are often used to specify the scope of an
1801:
1799:
1617:
797:
One method for avoiding delimiter collision is to use
2149:. Oxford Oxfordshire: Oxford University Press. 2001.
1887:
Describes single-line and multi-line comments. p. 72.
129:
99:
34:
A stylistic depiction of values inside of a so-named
1177:# match using alternate regular expression delimiter
119:") and as a pair of opposing-looking symbols (e.g.,
2235:
1842:
147:
111:
1692:
1690:
1688:
775:Between fields of a record, or members of a row.
280:Brackets (commonly used to denote a subscript).
89:, and can occur both as isolated symbols (e.g.,
2175:. Oxford Oxfordshire: Oxford University Press.
2031:. Oxford Oxfordshire: Oxford University Press.
2005:. Oxford Oxfordshire: Oxford University Press.
1875:. Oxford Oxfordshire: Oxford University Press.
1849:. Oxford Oxfordshire: Oxford University Press.
1815:. Oxford Oxfordshire: Oxford University Press.
1781:. Oxford Oxfordshire: Oxford University Press.
1755:. Oxford Oxfordshire: Oxford University Press.
1590:. Oxford Oxfordshire: Oxford University Press.
225:Common examples of bracket delimiters include:
1378:To store arbitrary text in an HTML attribute,
1009:all produce the desired output through use of
828:they do not protect against injection attacks
1793:Describes syntax and delimiters used in HTML.
8:
2262:
2260:
2066:Automating InDesign with Regular Expressions
1861:Describes XML processing instruction. p. 21.
1354:"BookTitle:Nancy doesn't say "
1213:# same as previous, but different delimiter.
404:Comparison of programming languages (syntax)
142:
130:
1953:: CS1 maint: numeric names: authors list (
1195:# same as previous, but different delimiter
964:Configurable alternative quoting delimiters
1929:The set of control characters for ISO 646
1610:
1608:
128:
98:
2161:Describes whitespace delimiters. p. 258.
1308:This technique is used, for example, in
672:
465:
408:
227:
1525:
1327:The first code fragment shows a simple
816:, leading to sequences such as "\/\/");
2238:Open Source for Windows Administrators
1946:
189:uses a comma as the delimiter between
1969:American National Standards Institute
1845:Sams Teach Yourself Xml in 10 Minutes
1727:Computer-Aided Reasoning: An Approach
640:to deploy such well-known attacks as
7:
2017:Describes use of control-z. p. 156,
197:indicator as the delimiter between
148:{\displaystyle \langle a,b\rangle }
62:. An example of a delimiter is the
785:as a field separator and ASCII 30
14:
2124:. Javvin Technologies Inc. 2005.
2107:In Ruby, these are indicated as
1753:Explorations in Computer Science
1371:This first code fragment is not
809:(due to use of \ to escape / in
381:to specify language boundaries.
1669:Programming Language Pragmatics
1544:from the original on 2013-03-05
364:in some programming languages.
1641:Friedl, Jeffrey E. F. (2002).
1:
2197:Perl operators and precedence
2173:Mastering Regular Expressions
2029:Mastering Regular Expressions
864:produces the same output as:
46:is a sequence of one or more
2089:Yukihiro, Matsumoto (2001).
1704:(Third ed.). O'Reilly.
1615:de Moor, Georges J. (1993).
1246:Here is an example in perl:
725:INFORMATION SEPARATOR THREE
2301:The Art of Unix Programming
1974:ASCII graphic character set
1700:; Orwant, Jon (July 2000).
1667:Scott, Michael Lee (1999).
1079:Regular expression examples
889:numeric character reference
704:INFORMATION SEPARATOR FOUR
449:Field and Record delimiters
214:using the CSV file format.
178:Field and record delimiters
66:character, which acts as a
2353:
2122:Network Protocols Handbook
1499:Delimiter-separated values
1137:# match one or more vowels
1076:
928:Padding quoting delimiters
924:types of quotation marks.
885:character entity reference
807:leaning toothpick syndrome
767:INFORMATION SEPARATOR ONE
746:INFORMATION SEPARATOR TWO
18:
2335:String (computer science)
2234:Gross, Christian (2005).
2109:general delimited strings
1777:Dilligan, Robert (1998).
1586:Rohl, Jeffrey S. (1973).
1119:# specify a target string
1073:Regular expression syntax
1057:Whitespace or indentation
2171:Friedl, Jeffrey (2006).
2068:. O'Reilly. p. 11.
2027:Friedl, Jeffrey (2006).
2002:Posix Programmer's Guide
1871:Cabrera, Harold (2002).
1779:Computing in the Web Age
1450:
1415:
1384:
1333:
1248:
1144:
1104:
977:
952:
938:
906:
866:
847:
754:End of a record or row.
436:doublequote, singlequote
326:commonly used to denote
309:commonly used to denote
207:This specifies a simple
56:mathematical expressions
2242:. Charles River Media.
2212:. John Wiley and Sons.
1999:Lewine, Donald (1991).
1873:C# for Java Programmers
1725:Kaufmann, Matt (2000).
1534:"Definition: delimiter"
1465:"__VIEWSTATE"
1430:"__VIEWSTATE"
1399:"__VIEWSTATE"
1348:"__VIEWSTATE"
1274:This code would print:
895:Dual quoting delimiters
537:none (except in CP/M),
345:processing instructions
2330:Programming constructs
2064:Kahrel, Peter (2006).
1588:Programming in Fortran
1563:"What is a Delimiter?"
618:comma-separated values
149:
113:
72:comma-separated values
39:
36:comma-separated values
2297:Data File Metaformats
2267:Kalani, Amit (2004).
1841:Watt, Andrew (2003).
1063:whitespace delimiters
594:Position 28 (U+001C)
396:Programming languages
343:used to indicate XML
150:
114:
33:
1971:(December 1, 1975).
1926:(December 1, 1975).
1751:Meyer, Mark (2005).
1567:www.computerhope.com
1514:Tab-separated values
781:The use of ASCII 31
666:ASCII delimited text
646:cross-site scripting
589:Position 30 (U+001E)
584:Position 31 (U+001F)
267:Braces (also called
164:Declarative notation
127:
97:
2305:Eric Steven Raymond
1671:. Morgan Kaufmann.
878:### use escape char
814:regular expressions
606:Delimiter collision
601:Delimiter collision
112:{\displaystyle 1:4}
2208:Rhee, Man (2003).
2092:Ruby in a Nutshell
1459:"hidden"
1424:"hidden"
1393:"hidden"
1342:"hidden"
1085:regular expression
485:systems including
328:character literals
218:Bracket delimiters
209:flat-file database
145:
109:
40:
2182:978-0-596-52812-6
2156:978-3-540-41687-6
2038:978-0-596-52812-6
2012:978-0-937175-73-6
1882:978-1-931836-54-8
1856:978-0-672-32471-0
1822:978-0-596-10105-3
1788:978-0-306-45972-6
1762:978-0-7637-3832-7
1597:978-0-7190-0555-8
1494:Decimal separator
1017:are two that do.
799:escape characters
779:
778:
598:
597:
461:Control character
446:
445:
417:End of Statement
385:
384:
185:For example, the
70:in a sequence of
2342:
2325:Pattern matching
2320:Markup languages
2284:
2282:
2264:
2255:
2253:
2241:
2231:
2225:
2223:
2205:
2199:
2194:
2188:
2186:
2168:
2162:
2160:
2143:
2137:
2135:
2118:
2112:
2106:
2086:
2080:
2079:
2061:
2055:
2050:
2044:
2042:
2024:
2018:
2016:
1996:
1990:
1989:
1979:
1965:
1959:
1958:
1952:
1944:
1934:
1920:
1914:
1913:
1911:
1910:
1894:
1888:
1886:
1868:
1862:
1860:
1848:
1838:
1832:
1826:
1807:Schwartz, Randal
1803:
1794:
1792:
1774:
1768:
1766:
1748:
1742:
1740:
1722:
1716:
1715:
1702:Programming Perl
1694:
1683:
1682:
1664:
1658:
1656:
1638:
1632:
1630:
1612:
1603:
1601:
1583:
1577:
1576:
1574:
1573:
1559:
1553:
1552:
1550:
1549:
1530:
1475:
1472:
1469:
1466:
1463:
1460:
1457:
1454:
1446:percent-encoding
1440:
1437:
1434:
1431:
1428:
1425:
1422:
1419:
1409:
1406:
1403:
1400:
1397:
1394:
1391:
1388:
1367:
1364:
1361:
1358:
1355:
1352:
1349:
1346:
1343:
1340:
1337:
1270:
1267:
1264:
1261:
1258:
1255:
1252:
1214:
1211:
1208:
1205:
1202:
1199:
1196:
1193:
1190:
1187:
1184:
1181:
1178:
1175:
1172:
1169:
1166:
1163:
1160:
1157:
1154:
1151:
1148:
1138:
1135:
1132:
1129:
1126:
1123:
1120:
1117:
1114:
1111:
1108:
1083:In specifying a
1027:content boundary
1021:Content boundary
1005:
1002:
999:
996:
993:
990:
987:
984:
981:
971:For example, in
959:
956:
945:
942:
916:
913:
910:
879:
876:
873:
870:
860:
857:
854:
851:
793:Escape character
787:Record separator
764:
750:record separator
743:
722:
701:
673:
648:, respectively.
587:RECORD SEPARATOR
466:
409:
374:
371:
357:
354:
340:
337:
323:
320:
306:
303:
290:
287:
277:
264:
261:
244:
241:
228:
154:
152:
151:
146:
118:
116:
115:
110:
2352:
2351:
2345:
2344:
2343:
2341:
2340:
2339:
2310:
2309:
2293:
2288:
2287:
2279:
2266:
2265:
2258:
2250:
2233:
2232:
2228:
2220:
2207:
2206:
2202:
2195:
2191:
2183:
2170:
2169:
2165:
2157:
2145:
2144:
2140:
2132:
2120:
2119:
2115:
2103:
2088:
2087:
2083:
2076:
2063:
2062:
2058:
2051:
2047:
2039:
2026:
2025:
2021:
2013:
1998:
1997:
1993:
1977:
1967:
1966:
1962:
1945:
1932:
1922:
1921:
1917:
1908:
1906:
1896:
1895:
1891:
1883:
1870:
1869:
1865:
1857:
1840:
1839:
1835:
1829:string literals
1823:
1805:
1804:
1797:
1789:
1776:
1775:
1771:
1763:
1750:
1749:
1745:
1737:
1724:
1723:
1719:
1712:
1696:
1695:
1686:
1679:
1666:
1665:
1661:
1653:
1640:
1639:
1635:
1627:
1614:
1613:
1606:
1598:
1585:
1584:
1580:
1571:
1569:
1561:
1560:
1556:
1547:
1545:
1532:
1531:
1527:
1522:
1504:Escape sequence
1485:
1477:
1476:
1473:
1470:
1467:
1464:
1461:
1458:
1455:
1452:
1442:
1441:
1438:
1435:
1432:
1429:
1426:
1423:
1420:
1417:
1411:
1410:
1407:
1404:
1401:
1398:
1395:
1392:
1389:
1386:
1369:
1368:
1365:
1362:
1359:
1356:
1353:
1350:
1347:
1344:
1341:
1338:
1335:
1322:
1286:
1278:
1272:
1271:
1268:
1265:
1262:
1259:
1256:
1253:
1250:
1221:
1216:
1215:
1212:
1209:
1206:
1203:
1200:
1197:
1194:
1191:
1188:
1185:
1182:
1179:
1176:
1173:
1170:
1167:
1164:
1161:
1159:# target string
1158:
1155:
1152:
1149:
1146:
1140:
1139:
1136:
1133:
1130:
1127:
1124:
1121:
1118:
1115:
1112:
1109:
1106:
1081:
1075:
1059:
1023:
1011:quote operators
1007:
1006:
1003:
1000:
997:
994:
991:
988:
985:
982:
979:
966:
961:
960:
957:
954:
947:
946:
943:
940:
930:
918:
917:
914:
911:
908:
897:
881:
880:
877:
874:
871:
868:
862:
861:
858:
855:
852:
849:
839:string literals
835:
833:Escape sequence
795:
762:
741:
729:group separator
720:
699:
668:
654:
626:vulnerabilities
603:
593:
588:
583:
390:
372:
369:
360:used to denote
355:
352:
338:
335:
321:
318:
311:string literals
304:
301:
288:
285:
276:
262:
259:
242:
239:
220:
205:
180:
172:
125:
124:
121:angled brackets
95:
94:
68:field delimiter
28:
17:
12:
11:
5:
2350:
2349:
2346:
2338:
2337:
2332:
2327:
2322:
2312:
2311:
2308:
2307:
2292:
2291:External links
2289:
2286:
2285:
2277:
2256:
2248:
2226:
2218:
2200:
2189:
2181:
2163:
2155:
2138:
2130:
2113:
2101:
2081:
2074:
2056:
2045:
2037:
2019:
2011:
1991:
1960:
1924:ISO/TC 97/SC 2
1915:
1889:
1881:
1863:
1855:
1833:
1821:
1795:
1787:
1769:
1761:
1743:
1735:
1717:
1710:
1684:
1677:
1659:
1651:
1633:
1625:
1604:
1596:
1578:
1554:
1524:
1523:
1521:
1518:
1517:
1516:
1511:
1509:String literal
1506:
1501:
1496:
1491:
1484:
1481:
1451:
1416:
1385:
1363:anymore."
1334:
1321:
1318:
1290:ASCII armoring
1285:
1282:
1276:
1249:
1220:
1217:
1145:
1105:
1095:operations in
1074:
1071:
1058:
1055:
1051:Here documents
1022:
1019:
978:
965:
962:
953:
939:
929:
926:
907:
896:
893:
867:
848:
834:
831:
830:
829:
826:
823:
820:
817:
794:
791:
783:Unit separator
777:
776:
773:
771:unit separator
768:
765:
760:
756:
755:
752:
747:
744:
739:
735:
734:
731:
726:
723:
718:
714:
713:
710:
708:file separator
705:
702:
697:
693:
692:
689:
686:
683:
680:
667:
664:
653:
650:
602:
599:
596:
595:
592:FILE SEPARATOR
590:
585:
581:UNIT SEPARATOR
578:
577:ASCII/Unicode
574:
573:
570:
565:
560:
546:Classic Mac OS
542:
541:
535:
530:
525:
507:
506:
503:
498:
493:
479:
478:
475:
472:
469:
444:
443:
437:
434:
430:
429:
426:
423:
419:
418:
415:
414:String Literal
412:
389:
386:
383:
382:
375:
366:
365:
358:
349:
348:
341:
332:
331:
324:
315:
314:
307:
298:
297:
294:Angle brackets
291:
282:
281:
278:
273:
272:
269:curly brackets
265:
256:
255:
245:
236:
235:
232:
219:
216:
203:
179:
176:
171:
168:
144:
141:
138:
135:
132:
108:
105:
102:
25:digit grouping
15:
13:
10:
9:
6:
4:
3:
2:
2348:
2347:
2336:
2333:
2331:
2328:
2326:
2323:
2321:
2318:
2317:
2315:
2306:
2302:
2298:
2295:
2294:
2290:
2280:
2278:0-7897-2901-6
2274:
2270:
2263:
2261:
2257:
2251:
2249:1-58450-347-5
2245:
2240:
2239:
2230:
2227:
2221:
2219:0-470-85285-2
2215:
2211:
2204:
2201:
2198:
2193:
2190:
2184:
2178:
2174:
2167:
2164:
2158:
2152:
2148:
2142:
2139:
2133:
2131:0-9740945-2-8
2127:
2123:
2117:
2114:
2110:
2104:
2102:0-596-00214-9
2098:
2094:
2093:
2085:
2082:
2077:
2075:0-596-52937-6
2071:
2067:
2060:
2057:
2054:
2049:
2046:
2040:
2034:
2030:
2023:
2020:
2014:
2008:
2004:
2003:
1995:
1992:
1987:
1983:
1976:
1975:
1970:
1964:
1961:
1956:
1950:
1942:
1938:
1931:
1930:
1925:
1919:
1916:
1905:
1904:
1899:
1893:
1890:
1884:
1878:
1874:
1867:
1864:
1858:
1852:
1847:
1846:
1837:
1834:
1830:
1824:
1818:
1814:
1813:
1812:Learning Perl
1808:
1802:
1800:
1796:
1790:
1784:
1780:
1773:
1770:
1764:
1758:
1754:
1747:
1744:
1738:
1736:0-7923-7744-3
1732:
1728:
1721:
1718:
1713:
1711:0-596-00027-8
1707:
1703:
1699:
1693:
1691:
1689:
1685:
1680:
1678:1-55860-442-1
1674:
1670:
1663:
1660:
1654:
1652:0-596-00289-0
1648:
1644:
1637:
1634:
1628:
1626:90-5199-114-2
1622:
1619:. IOS Press.
1618:
1611:
1609:
1605:
1599:
1593:
1589:
1582:
1579:
1568:
1564:
1558:
1555:
1543:
1539:
1535:
1529:
1526:
1519:
1515:
1512:
1510:
1507:
1505:
1502:
1500:
1497:
1495:
1492:
1490:
1487:
1486:
1482:
1480:
1449:
1447:
1414:
1383:
1381:
1380:HTML entities
1376:
1374:
1332:
1330:
1325:
1319:
1317:
1315:
1311:
1306:
1304:
1300:
1296:
1291:
1283:
1281:
1275:
1247:
1244:
1242:
1238:
1234:
1230:
1226:
1225:Here document
1219:Here document
1218:
1143:
1103:
1100:
1098:
1094:
1090:
1086:
1080:
1072:
1070:
1068:
1064:
1056:
1054:
1052:
1048:
1044:
1040:
1036:
1031:
1028:
1020:
1018:
1016:
1012:
976:
974:
969:
963:
951:
937:
935:
927:
925:
923:
905:
903:
894:
892:
890:
886:
865:
846:
844:
840:
832:
827:
824:
821:
818:
815:
812:
808:
804:
803:
802:
800:
792:
790:
788:
784:
774:
772:
769:
766:
761:
758:
757:
753:
751:
748:
745:
740:
737:
736:
732:
730:
727:
724:
719:
716:
715:
711:
709:
706:
703:
698:
695:
694:
690:
687:
685:Unicode Name
684:
681:
679:
675:
674:
671:
665:
663:
660:
651:
649:
647:
643:
642:SQL injection
639:
635:
631:
627:
622:
619:
614:
612:
611:angle bracket
607:
600:
591:
586:
582:
579:
576:
575:
571:
569:
566:
564:
561:
559:
555:
551:
547:
544:
543:
540:
536:
534:
531:
529:
526:
524:
520:
516:
512:
509:
508:
504:
502:
499:
497:
494:
492:
488:
484:
481:
480:
476:
474:End of Record
473:
470:
468:
467:
464:
462:
458:
454:
450:
441:
438:
435:
432:
431:
427:
424:
421:
420:
416:
413:
411:
410:
407:
405:
401:
397:
393:
387:
380:
379:web templates
377:used in some
376:
368:
367:
363:
359:
351:
350:
346:
342:
334:
333:
329:
325:
317:
316:
312:
308:
300:
299:
295:
292:
284:
283:
279:
275:
274:
270:
266:
258:
257:
253:
249:
246:
238:
237:
233:
230:
229:
226:
223:
217:
215:
213:
210:
202:
200:
196:
192:
188:
183:
177:
175:
169:
167:
165:
161:
156:
139:
136:
133:
122:
106:
103:
100:
92:
88:
84:
79:
77:
73:
69:
65:
61:
57:
53:
49:
45:
37:
32:
26:
22:
2268:
2237:
2229:
2209:
2203:
2192:
2172:
2166:
2146:
2141:
2121:
2116:
2108:
2095:. O'Reilly.
2091:
2084:
2065:
2059:
2048:
2028:
2022:
2001:
1994:
1973:
1963:
1928:
1918:
1907:. Retrieved
1901:
1892:
1872:
1866:
1844:
1836:
1811:
1778:
1772:
1752:
1746:
1729:. Springer.
1726:
1720:
1701:
1668:
1662:
1645:. O'Reilly.
1642:
1636:
1616:
1587:
1581:
1570:. Retrieved
1566:
1557:
1546:. Retrieved
1537:
1528:
1478:
1443:
1412:
1377:
1370:
1360:World!"
1326:
1323:
1307:
1303:doublequotes
1287:
1279:
1273:
1269:ENDOFHEREDOC
1257:ENDOFHEREDOC
1245:
1233:bash scripts
1222:
1141:
1101:
1093:substitution
1092:
1088:
1082:
1060:
1042:
1032:
1026:
1024:
1008:
970:
967:
948:
934:Visual Basic
931:
921:
919:
898:
882:
863:
859:### use \x22
845:, the code:
836:
796:
780:
688:Common Name
669:
658:
655:
623:
615:
613:character.
605:
604:
477:End of File
471:End of Field
452:
448:
447:
399:
395:
394:
391:
234:Description
224:
221:
206:
184:
181:
173:
157:
80:
67:
60:data streams
43:
41:
21:Word divider
1698:Wall, Larry
1373:well-formed
1301:, i.e. for
1284:ASCII armor
1067:indentation
440:end of line
425:singlequote
388:Conventions
248:Parentheses
231:Delimiters
195:end-of-line
160:data stream
83:mathematics
2314:Categories
1909:2023-02-10
1827:Describes
1572:2020-08-09
1548:2019-11-25
1520:References
1207:m!http://!
1189:m{http://}
1171:m@http://@
1077:See also:
428:semicolon
187:CSV format
76:Morse code
52:plain text
48:characters
2187:page 472.
1453:<input
1418:<input
1387:<input
1336:<input
1310:Microsoft
1201:$ string1
1183:$ string1
1165:$ string1
1147:$ string1
1125:$ string1
1107:$ string1
1039:timestamp
652:Solutions
550:Apple DOS
539:Control-Z
483:Unix-like
193:, and an
143:⟩
131:⟨
87:operation
58:or other
44:delimiter
1980:. ITSCJ/
1949:citation
1935:. ITSCJ/
1809:(2005).
1542:Archived
1483:See also
1329:HTML tag
1299:escaping
1254:<<
1043:See e.g.
630:exploits
453:See also
400:See also
362:comments
170:Overview
2271:. Que.
2111:. p. 11
1320:Example
1314:ASP.NET
682:Symbol
621:files.
511:Windows
491:AmigaOS
433:Python
422:Pascal
199:records
2275:
2246:
2216:
2179:
2153:
2128:
2099:
2072:
2035:
2009:
1986:ISO-IR
1941:ISO-IR
1903:GitHub
1879:
1853:
1819:
1785:
1759:
1733:
1708:
1675:
1657:p. 319
1649:
1631:p. 141
1623:
1594:
1468:value=
1433:value=
1402:value=
1351:value=
1295:base64
691:Usage
676:ASCII
659:ad hoc
554:ProDOS
515:MS-DOS
442:(EOL)
250:. The
191:fields
2299:from
2136:p. 26
1978:(PDF)
1933:(PDF)
1489:CDATA
1474:/>
1462:name=
1456:type=
1439:/>
1427:name=
1421:type=
1408:/>
1396:name=
1390:type=
1366:/>
1357:Hello
1345:name=
1339:type=
1251:print
1198:print
1180:print
1162:print
1122:print
1089:match
998:print
989:print
980:print
955:print
941:print
909:print
869:print
850:print
572:none
558:GS/OS
505:none
487:macOS
457:ASCII
373:%>
370:<%
339:?>
336:<?
212:table
91:colon
64:comma
2273:ISBN
2244:ISBN
2214:ISBN
2177:ISBN
2151:ISBN
2126:ISBN
2097:ISBN
2070:ISBN
2033:ISBN
2007:ISBN
1982:IPSJ
1955:link
1937:IPSJ
1877:ISBN
1851:ISBN
1817:ISBN
1783:ISBN
1757:ISBN
1741:p. 3
1731:ISBN
1706:ISBN
1673:ISBN
1647:ISBN
1621:ISBN
1592:ISBN
1241:perl
1239:and
1237:ruby
1131:m/+/
1097:Perl
1091:and
1047:MIME
1037:, a
1035:UUID
1015:Ruby
973:Perl
922:both
902:Perl
843:Perl
811:Perl
644:and
638:HTML
636:and
628:and
533:CRLF
523:CP/M
519:OS/2
289:>
286:<
252:Lisp
93:in "
23:and
2303:by
1988:-6.
1943:-1.
1444:Or
1312:'s
1229:PHP
1065:or
1053:).
891:).
759:31
738:30
717:29
696:28
678:Dec
634:SQL
563:Tab
528:Tab
496:Tab
463:).
406:).
271:).
155:).
123:in
81:In
2316::
2259:^
1984:.
1951:}}
1947:{{
1939:.
1900:.
1798:^
1687:^
1607:^
1565:.
1540:.
1536:.
1448::
1305:.
1235:,
1231:,
1223:A
1204:=~
1186:=~
1168:=~
1128:=~
1099:.
1049:,
1045:,
1025:A
975::
904::
887:,
568:CR
556:,
552:,
548:,
521:,
517:,
513:,
501:LF
489:,
459:,
455:,
402:,
356:*/
353:/*
347:.
330:.
313:.
296:.
201::
162:.
78:.
54:,
42:A
2281:.
2252:.
2222:.
2185:.
2159:.
2134:.
2105:.
2078:.
2041:.
2015:.
1957:)
1912:.
1885:.
1859:.
1831:.
1825:.
1791:.
1765:.
1739:.
1714:.
1681:.
1655:.
1629:.
1600:.
1575:.
1551:.
1260:;
1210:;
1192:;
1174:;
1156:;
1150:=
1134:;
1116:;
1110:=
1004:;
995:;
986:;
915:;
875:;
856:;
763:␟
742:␞
721:␝
700:␜
451:(
398:(
322:'
319:'
305:"
302:"
263:}
260:{
243:)
240:(
140:b
137:,
134:a
107:4
104::
101:1
27:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.