{"id":360,"date":"2026-10-13T21:01:38","date_gmt":"2026-10-13T21:01:38","guid":{"rendered":"http:\/\/www.scmgalaxy.com\/tutorials\/2014\/07\/22\/commonly-used-sign-punctuation-and-their-name-in-perl\/"},"modified":"2026-10-13T21:01:39","modified_gmt":"2026-10-13T21:01:39","slug":"commonly-used-sign-punctuation-and-their-name-in-perl","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/commonly-used-sign-punctuation-and-their-name-in-perl\/","title":{"rendered":"Perl Punctuation and Sigils: Practical Symbol Reference with Examples"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Perl relies heavily on punctuation for variables, operators, regular expressions, and code structure. This guide is for engineers who want a quick but accurate reference to common symbols and how they are used in real Perl scripts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Originally published on 2014-07-22; fully revised and updated.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Source post: <a href=\"https:\/\/www.devopsschool.com\/blog\/commonly-used-sign-punctuation-and-their-name-in-perl\/\">Commonly Used Sign- Punctuation and their Name in Perl<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2014\/07\/sign-punctuation-name-in-pe-1.png\" alt=\"Perl punctuation marks reference chart\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Quick reference: punctuation names and typical Perl usage<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The table below focuses on symbols commonly seen in Perl code. Some marks from the original post are typographic symbols rather than core Perl syntax, and are marked as such.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Symbol<\/th><th>Common name<\/th><th>Typical Perl use<\/th><th>Example<\/th><\/tr><\/thead><tbody><tr><td>=&gt;<\/td><td>Fat comma (comma arrow)<\/td><td>Readable key\/value pairs in hashes<\/td><td><code>team =&gt; \"platform\"<\/code><\/td><\/tr><tr><td>$<\/td><td>Dollar sign (scalar sigil)<\/td><td>Single scalar value<\/td><td><code>my $count = 3;<\/code><\/td><\/tr><tr><td>@<\/td><td>At sign (array sigil)<\/td><td>Ordered list values<\/td><td><code>my @hosts = (...);<\/code><\/td><\/tr><tr><td>%<\/td><td>Percent sign (hash sigil)<\/td><td>Key\/value map<\/td><td><code>my %cfg = (...);<\/code><\/td><\/tr><tr><td>;<\/td><td>Semicolon<\/td><td>Statement terminator<\/td><td><code>print \"ok\";<\/code><\/td><\/tr><tr><td>,<\/td><td>Comma<\/td><td>List separator<\/td><td><code>(1, 2, 3)<\/code><\/td><\/tr><tr><td>:<\/td><td>Colon<\/td><td>Ternary and labels<\/td><td><code>$a ? $b : $c<\/code><\/td><\/tr><tr><td>( )<\/td><td>Parentheses<\/td><td>Grouping, function arguments<\/td><td><code>print($msg)<\/code><\/td><\/tr><tr><td>[ ]<\/td><td>Square brackets<\/td><td>Array indexing and array refs<\/td><td><code>$arr[0]<\/code><\/td><\/tr><tr><td>{ }<\/td><td>Curly braces<\/td><td>Hash access, blocks, hash refs<\/td><td><code>$h{key}<\/code><\/td><\/tr><tr><td>\/<\/td><td>Slash<\/td><td>Regex delimiter and division<\/td><td><code>$s =~ \/err\/<\/code><\/td><\/tr><tr><td>\\<\/td><td>Backslash<\/td><td>Escaping in strings and regex<\/td><td><code>\"<\/code> and <code>\\n<\/code><\/td><\/tr><tr><td>=~<\/td><td>Binding operator<\/td><td>Apply regex to a scalar<\/td><td><code>$line =~ \/timeout\/<\/code><\/td><\/tr><tr><td>!<\/td><td>Exclamation mark<\/td><td>Logical negation<\/td><td><code>if (!$ok) { ... }<\/code><\/td><\/tr><tr><td>?<\/td><td>Question mark<\/td><td>Ternary operator<\/td><td><code>$x ? \"yes\" : \"no\"<\/code><\/td><\/tr><tr><td>|<\/td><td>Pipe \/ vertical bar<\/td><td>Bitwise OR, regex alternation<\/td><td><code>\/warn|error\/<\/code><\/td><\/tr><tr><td>&amp;<\/td><td>Ampersand<\/td><td>Bitwise AND, optional sub call style<\/td><td><code>$a &amp; $b<\/code><\/td><\/tr><tr><td>^<\/td><td>Caret<\/td><td>Bitwise XOR, regex start anchor<\/td><td><code>\/^INFO\/<\/code><\/td><\/tr><tr><td>&lt; , &gt;<\/td><td>Less-than \/ greater-than<\/td><td>Numeric comparisons<\/td><td><code>$n &gt; 10<\/code><\/td><\/tr><tr><td>&#8211;<\/td><td>Hyphen-minus<\/td><td>Subtraction, unary minus<\/td><td><code>$a - $b<\/code><\/td><\/tr><tr><td>_<\/td><td>Underscore<\/td><td>Common in identifiers<\/td><td><code>my $build_id<\/code><\/td><\/tr><tr><td>&#8216; and &#8220;<\/td><td>Quotation marks<\/td><td>String delimiters<\/td><td><code>'raw'<\/code> vs <code>\"interp $x\"<\/code><\/td><\/tr><tr><td>\u2032 \u2033 \u3003<\/td><td>Prime \/ double-prime \/ ditto mark<\/td><td>Typographic marks; uncommon in Perl syntax<\/td><td>Prefer plain ASCII symbols in source<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Compare quoting forms in Perl<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Form<\/th><th>Interpolation<\/th><th>Best for<\/th><th>Example<\/th><\/tr><\/thead><tbody><tr><td>Single quotes<\/td><td>No variable interpolation<\/td><td>Literal strings<\/td><td><code>'path\/$HOME'<\/code><\/td><\/tr><tr><td>Double quotes<\/td><td>Yes<\/td><td>Strings with variables or escapes<\/td><td><code>\"user=$user\\n\"<\/code><\/td><\/tr><tr><td><code>q{...}<\/code><\/td><td>No<\/td><td>Literal strings with fewer escapes<\/td><td><code>q{\/var\/log\/app}<\/code><\/td><\/tr><tr><td><code>qq{...}<\/code><\/td><td>Yes<\/td><td>Interpolated strings with custom delimiters<\/td><td><code>qq{host=$host}<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Practical Perl examples<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php language-perl\"><span class=\"hljs-keyword\">use<\/span> <span class=\"hljs-title\">strict<\/span>;\n<span class=\"hljs-keyword\">use<\/span> <span class=\"hljs-title\">warnings<\/span>;\n\nmy $service = <span class=\"hljs-string\">\"api\"<\/span>;\nmy @ports   = (<span class=\"hljs-number\">8080<\/span>, <span class=\"hljs-number\">8081<\/span>);\nmy %owner   = (\n    team =&gt; <span class=\"hljs-string\">\"platform\"<\/span>,\n    lead =&gt; <span class=\"hljs-string\">\"alex\"<\/span>,\n);\n\n<span class=\"hljs-keyword\">print<\/span> <span class=\"hljs-string\">\"$service\\n\"<\/span>;\n<span class=\"hljs-keyword\">print<\/span> <span class=\"hljs-string\">\"$ports&#91;0]\\n\"<\/span>;\n<span class=\"hljs-keyword\">print<\/span> <span class=\"hljs-string\">\"$owner{team}\\n\"<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php language-perl\">my $count = <span class=\"hljs-number\">12<\/span>;\n<span class=\"hljs-keyword\">if<\/span> ($count &gt; <span class=\"hljs-number\">10<\/span> &amp;&amp; $count &lt; <span class=\"hljs-number\">20<\/span>) {\n    <span class=\"hljs-keyword\">print<\/span> <span class=\"hljs-string\">\"in range\\n\"<\/span>;\n}\n\nmy $line = <span class=\"hljs-string\">\"error: timeout\"<\/span>;\n<span class=\"hljs-keyword\">if<\/span> ($line =~ \/timeout\/) {\n    <span class=\"hljs-keyword\">print<\/span> <span class=\"hljs-string\">\"matched\\n\"<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css language-bash\"><span class=\"hljs-selector-tag\">perl<\/span> <span class=\"hljs-selector-tag\">-c<\/span> <span class=\"hljs-selector-tag\">script<\/span><span class=\"hljs-selector-class\">.pl<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Decision flow: choosing the right sigil<\/h2>\n\n\n\n<pre class=\"mermaid\">\nflowchart TD\n    A[Need a variable] --&gt; B{Data shape}\n    B --&gt;|Single value| C[Use dollar sigil]\n    B --&gt;|Ordered list| D[Use at sigil]\n    B --&gt;|Key value map| E[Use percent sigil]\n    C --&gt; F[Access scalar directly]\n    D --&gt; G[Access by index]\n    E --&gt; H[Access by key]\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Common pitfalls and best practices<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Avoid smart quotes and look-alike Unicode punctuation in source files; Perl code is safest with plain ASCII symbols.<\/li><li>Do not confuse sigils (<code>$<\/code>, <code>@<\/code>, <code>%<\/code>) with operators; sigils identify variable type context.<\/li><li>Use <code>=&gt;<\/code> in hash literals for readability, especially in config-like data.<\/li><li>Keep <code>use strict;<\/code> and <code>use warnings;<\/code> enabled to catch punctuation-related mistakes early.<\/li><li>Run <code>perl -c<\/code> before committing to catch syntax errors quickly.<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>A clear reference to the punctuation marks you see most often in Perl code, including sigils, operators, delimiters, and quote forms. Includes usage tables, example snippets, and a quick decision flow for choosing the right sigil.<\/p>\n","protected":false},"author":1,"featured_media":3656,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[14],"tags":[1979,1987,1985,1122,507,1983,1984,175,1988,1990,1991,1992,1989,1982,938,1981,1986,1980],"class_list":["post-360","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-perl","tag-common","tag-common-punctuation-marks-in-perl","tag-commonly-used","tag-guide","tag-list","tag-marks","tag-name","tag-perl","tag-perl-common-sign-punctuation-marks","tag-perl-sign-punctuation-guide","tag-perl-sign-punctuation-list","tag-perl-sign-punctuation-marks","tag-perl-sign-punctuation-reference","tag-punctuation","tag-reference","tag-sign","tag-sign-punctuation","tag-use"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/360","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=360"}],"version-history":[{"count":3,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/360\/revisions"}],"predecessor-version":[{"id":79234,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/360\/revisions\/79234"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media\/3656"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=360"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=360"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}