CINXE.COM
Intermediate Perl – Page 2
<!DOCTYPE html> <html lang="en-US" class="no-js"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="profile" href="https://gmpg.org/xfn/11"> <script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script> <title>Intermediate Perl – Page 2</title> <meta name='robots' content='max-image-preview:large' /> <link rel='dns-prefetch' href='//fonts.googleapis.com' /> <link rel='dns-prefetch' href='//s.w.org' /> <link href='https://fonts.gstatic.com' crossorigin rel='preconnect' /> <link rel="alternate" type="application/rss+xml" title="Intermediate Perl » Feed" href="https://www.intermediateperl.com/feed/" /> <link rel="alternate" type="application/rss+xml" title="Intermediate Perl » Comments Feed" href="https://www.intermediateperl.com/comments/feed/" /> <script> window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/13.1.0\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/13.1.0\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/www.intermediateperl.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=5.8.3"}}; !function(e,a,t){var n,r,o,i=a.createElement("canvas"),p=i.getContext&&i.getContext("2d");function s(e,t){var a=String.fromCharCode;p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,e),0,0);e=i.toDataURL();return p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,t),0,0),e===i.toDataURL()}function c(e){var t=a.createElement("script");t.src=e,t.defer=t.type="text/javascript",a.getElementsByTagName("head")[0].appendChild(t)}for(o=Array("flag","emoji"),t.supports={everything:!0,everythingExceptFlag:!0},r=0;r<o.length;r++)t.supports[o[r]]=function(e){if(!p||!p.fillText)return!1;switch(p.textBaseline="top",p.font="600 32px Arial",e){case"flag":return s([127987,65039,8205,9895,65039],[127987,65039,8203,9895,65039])?!1:!s([55356,56826,55356,56819],[55356,56826,8203,55356,56819])&&!s([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]);case"emoji":return!s([10084,65039,8205,55357,56613],[10084,65039,8203,55357,56613])}return!1}(o[r]),t.supports.everything=t.supports.everything&&t.supports[o[r]],"flag"!==o[r]&&(t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&t.supports[o[r]]);t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&!t.supports.flag,t.DOMReady=!1,t.readyCallback=function(){t.DOMReady=!0},t.supports.everything||(n=function(){t.readyCallback()},a.addEventListener?(a.addEventListener("DOMContentLoaded",n,!1),e.addEventListener("load",n,!1)):(e.attachEvent("onload",n),a.attachEvent("onreadystatechange",function(){"complete"===a.readyState&&t.readyCallback()})),(n=t.source||{}).concatemoji?c(n.concatemoji):n.wpemoji&&n.twemoji&&(c(n.twemoji),c(n.wpemoji)))}(window,document,window._wpemojiSettings); </script> <style> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 .07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='wp-block-library-css' href='https://www.intermediateperl.com/wp-includes/css/dist/block-library/style.min.css?ver=5.8.3' media='all' /> <style id='wp-block-library-theme-inline-css'> #start-resizable-editor-section{display:none}.wp-block-audio figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio figcaption{color:hsla(0,0%,100%,.65)}.wp-block-code{font-family:Menlo,Consolas,monaco,monospace;color:#1e1e1e;padding:.8em 1em;border:1px solid #ddd;border-radius:4px}.wp-block-embed figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed figcaption{color:hsla(0,0%,100%,.65)}.blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:hsla(0,0%,100%,.65)}.wp-block-image figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-image figcaption{color:hsla(0,0%,100%,.65)}.wp-block-pullquote{border-top:4px solid;border-bottom:4px solid;margin-bottom:1.75em;color:currentColor}.wp-block-pullquote__citation,.wp-block-pullquote cite,.wp-block-pullquote footer{color:currentColor;text-transform:uppercase;font-size:.8125em;font-style:normal}.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;position:relative;font-style:normal}.wp-block-quote.has-text-align-right{border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote.has-text-align-center{border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large{border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-group.has-background{padding:1.25em 2.375em;margin-top:0;margin-bottom:0}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto;opacity:.4}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}.wp-block-table thead{border-bottom:3px solid}.wp-block-table tfoot{border-top:3px solid}.wp-block-table td,.wp-block-table th{padding:.5em;border:1px solid;word-break:normal}.wp-block-table figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table figcaption{color:hsla(0,0%,100%,.65)}.wp-block-video figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video figcaption{color:hsla(0,0%,100%,.65)}.wp-block-template-part.has-background{padding:1.25em 2.375em;margin-top:0;margin-bottom:0}#end-resizable-editor-section{display:none} </style> <link rel='stylesheet' id='twentysixteen-fonts-css' href='https://fonts.googleapis.com/css?family=Merriweather%3A400%2C700%2C900%2C400italic%2C700italic%2C900italic%7CMontserrat%3A400%2C700%7CInconsolata%3A400&subset=latin%2Clatin-ext&display=fallback' media='all' /> <link rel='stylesheet' id='genericons-css' href='https://www.intermediateperl.com/wp-content/themes/twentysixteen/genericons/genericons.css?ver=20201208' media='all' /> <link rel='stylesheet' id='twentysixteen-style-css' href='https://www.intermediateperl.com/wp-content/themes/twentysixteen/style.css?ver=20201208' media='all' /> <link rel='stylesheet' id='twentysixteen-block-style-css' href='https://www.intermediateperl.com/wp-content/themes/twentysixteen/css/blocks.css?ver=20190102' media='all' /> <!--[if lt IE 10]> <link rel='stylesheet' id='twentysixteen-ie-css' href='https://www.intermediateperl.com/wp-content/themes/twentysixteen/css/ie.css?ver=20170530' media='all' /> <![endif]--> <!--[if lt IE 9]> <link rel='stylesheet' id='twentysixteen-ie8-css' href='https://www.intermediateperl.com/wp-content/themes/twentysixteen/css/ie8.css?ver=20170530' media='all' /> <![endif]--> <!--[if lt IE 8]> <link rel='stylesheet' id='twentysixteen-ie7-css' href='https://www.intermediateperl.com/wp-content/themes/twentysixteen/css/ie7.css?ver=20170530' media='all' /> <![endif]--> <!--[if lt IE 9]> <script src='https://www.intermediateperl.com/wp-content/themes/twentysixteen/js/html5.js?ver=3.7.3' id='twentysixteen-html5-js'></script> <![endif]--> <script src='https://www.intermediateperl.com/wp-includes/js/jquery/jquery.min.js?ver=3.6.0' id='jquery-core-js'></script> <script src='https://www.intermediateperl.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.3.2' id='jquery-migrate-js'></script> <link rel="https://api.w.org/" href="https://www.intermediateperl.com/wp-json/" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.intermediateperl.com/xmlrpc.php?rsd" /> <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="https://www.intermediateperl.com/wp-includes/wlwmanifest.xml" /> <meta name="generator" content="WordPress 5.8.3" /> <link type="text/css" rel="stylesheet" href="https://www.intermediateperl.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/styles/shCore.css" /> <link type="text/css" rel="stylesheet" href="https://www.intermediateperl.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/styles/shThemeDefault.css" /> <script type="text/javascript" src="https://www.intermediateperl.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/shCore.js"></script> <script type="text/javascript" src="https://www.intermediateperl.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/shBrushBash.js"></script> <script type="text/javascript" src="https://www.intermediateperl.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/shBrushCpp.js"></script> <script type="text/javascript" src="https://www.intermediateperl.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/shBrushCSharp.js"></script> <script type="text/javascript" src="https://www.intermediateperl.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/shBrushCss.js"></script> <script type="text/javascript" src="https://www.intermediateperl.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/shBrushDelphi.js"></script> <script type="text/javascript" src="https://www.intermediateperl.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/shBrushDiff.js"></script> <script type="text/javascript" src="https://www.intermediateperl.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/shBrushGroovy.js"></script> <script type="text/javascript" src="https://www.intermediateperl.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/shBrushJava.js"></script> <script type="text/javascript" src="https://www.intermediateperl.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/shBrushJScript.js"></script> <script type="text/javascript" src="https://www.intermediateperl.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/shBrushPerl.js"></script> <script type="text/javascript" src="https://www.intermediateperl.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/shBrushPhp.js"></script> <script type="text/javascript" src="https://www.intermediateperl.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/shBrushPlain.js"></script> <script type="text/javascript" src="https://www.intermediateperl.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/shBrushPython.js"></script> <script type="text/javascript" src="https://www.intermediateperl.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/shBrushRuby.js"></script> <script type="text/javascript" src="https://www.intermediateperl.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/shBrushScala.js"></script> <script type="text/javascript" src="https://www.intermediateperl.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/shBrushSql.js"></script> <script type="text/javascript" src="https://www.intermediateperl.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/shBrushVb.js"></script> <script type="text/javascript" src="https://www.intermediateperl.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/shBrushXml.js"></script> <script type="text/javascript"> SyntaxHighlighter.config.clipboardSwf = 'https://www.intermediateperl.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/clipboard.swf'; SyntaxHighlighter.all(); </script> <!-- Twitter Cards Meta - V 2.5.4 --> <meta name="twitter:card" content="summary" /> <meta name="twitter:site" content="@briandfoy_perl" /> <meta name="twitter:creator" content="@briandfoy_perl" /> <meta name="twitter:url" content="https://www.intermediateperl.com" /> <meta name="twitter:title" content="Intermediate Perl" /> <meta name="twitter:description" content="Intermediate Perl" /> <meta name="twitter:image" content="http://www.intermediateperl.com/images/alpaca-cover.jpg" /> <!-- Twitter Cards Meta By WPDeveloper.net --> </head> <body class="home blog paged wp-embed-responsive paged-2 hfeed"> <div id="page" class="site"> <div class="site-inner"> <a class="skip-link screen-reader-text" href="#content">Skip to content</a> <header id="masthead" class="site-header"> <div class="site-header-main"> <div class="site-branding"> <h1 class="site-title"><a href="https://www.intermediateperl.com/" rel="home">Intermediate Perl</a></h1> </div><!-- .site-branding --> <button id="menu-toggle" class="menu-toggle">Menu</button> <div id="site-header-menu" class="site-header-menu"> <nav id="site-navigation" class="main-navigation" aria-label="Primary Menu"> <div class="menu-menu-container"><ul id="menu-menu" class="primary-menu"><li id="menu-item-267" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-267"><a href="https://www.intermediateperl.com/reviews/">Reviews</a></li> <li id="menu-item-268" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-268"><a href="https://www.intermediateperl.com/downloads_page/">Downloads</a></li> <li id="menu-item-269" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-269"><a href="https://www.intermediateperl.com/colophon/">Colophon</a></li> <li id="menu-item-270" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-270"><a href="https://www.intermediateperl.com/about-the-site/">About the site</a></li> <li id="menu-item-271" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-271"><a href="https://www.intermediateperl.com/about/">About the book</a></li> </ul></div> </nav><!-- .main-navigation --> </div><!-- .site-header-menu --> </div><!-- .site-header-main --> </header><!-- .site-header --> <div id="content" class="site-content"> <div id="primary" class="content-area"> <main id="main" class="site-main"> <article id="post-188" class="post-188 post type-post status-publish format-standard hentry category-announcements"> <header class="entry-header"> <h2 class="entry-title"><a href="https://www.intermediateperl.com/2013/06/second-printing-available/" rel="bookmark">Second printing available</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p><i>Intermediate Perl</i> 2nd edition’s second printing is now available. This contains fixes for almost all of the reported errata, but it otherwise the same content. </p> <p>If you’ve bought your ebook through O’Reilly, you should have it available in your O’Reilly account. Look at your O’Reilly products list. I have the Alpaca under mine and I can immediately download the format I want or send them to Dropbox.</p> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="byline"><span class="author vcard"><img alt='' src='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=49&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=98&d=mm&r=g 2x' class='avatar avatar-49 photo' height='49' width='49' loading='lazy'/><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://www.intermediateperl.com/author/brian/">brian</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://www.intermediateperl.com/2013/06/second-printing-available/" rel="bookmark"><time class="entry-date published" datetime="2013-06-12T17:12:41+00:00">June 12, 2013</time><time class="updated" datetime="2022-05-13T05:46:59+00:00">May 13, 2022</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://www.intermediateperl.com/category/announcements/" rel="category tag">Announcements</a></span> </footer><!-- .entry-footer --> </article><!-- #post-188 --> <article id="post-181" class="post-181 post type-post status-publish format-standard hentry category-publishing"> <header class="entry-header"> <h2 class="entry-title"><a href="https://www.intermediateperl.com/2013/06/the-alpaca-gets-a-second-printing/" rel="bookmark">The Alpaca gets a second printing</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p>Most tech books have trouble selling even a couple thousand copies, which makes it tough for a publisher to figure out how many to print at first. Print too many and they’ll just sit there, or worse. The publishing industry is a bitch because the book shops can returned unsold inventory and get money back. On every royalty statement, I have a “reserve withheld” and a “reserve returned”. The publisher reserves some of my royalty in case the book stores return books. After a certain period, they return that. But, they then withhold more. That’s just the way it is. <a href="https://www.intermediateperl.com/2013/06/the-alpaca-gets-a-second-printing/#more-181" class="more-link">Continue reading<span class="screen-reader-text"> “The Alpaca gets a second printing”</span></a></p> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="byline"><span class="author vcard"><img alt='' src='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=49&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=98&d=mm&r=g 2x' class='avatar avatar-49 photo' height='49' width='49' loading='lazy'/><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://www.intermediateperl.com/author/brian/">brian</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://www.intermediateperl.com/2013/06/the-alpaca-gets-a-second-printing/" rel="bookmark"><time class="entry-date published" datetime="2013-06-01T23:40:46+00:00">June 1, 2013</time><time class="updated" datetime="2022-05-13T05:46:59+00:00">May 13, 2022</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://www.intermediateperl.com/category/publishing/" rel="category tag">publishing</a></span><span class="comments-link"><a href="https://www.intermediateperl.com/2013/06/the-alpaca-gets-a-second-printing/#comments">1 Comment<span class="screen-reader-text"> on The Alpaca gets a second printing</span></a></span> </footer><!-- .entry-footer --> </article><!-- #post-181 --> <article id="post-165" class="post-165 post type-post status-publish format-standard hentry category-cpan"> <header class="entry-header"> <h2 class="entry-title"><a href="https://www.intermediateperl.com/2012/10/clarifying-locallib-and-cpan-in-chapter-2/" rel="bookmark">Clarifying local::lib and cpan in Chapter 2</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p><a href="https://www.metacpan.org/module/local::lib">local::lib</a> is highlighted in <i>Intermediate Perl</i> when I go through the CPAN tools in Chapter 2. Each of the tools has a slightly different set of features and I try to steal the good one. I added a <a href="https://www.metacpan.org/module/local::lib">local::lib</a> to <code>cpan</code> so you can add the <a href="https://www.metacpan.org/module/local::lib">local::lib</a> defaults for a one-shot installation process. This steals a feature from <a href="https://www.metacpan.org/module/App::cpanminus">cpanm</a> which has a <code>--local-lib</code> option: <a href="https://www.intermediateperl.com/2012/10/clarifying-locallib-and-cpan-in-chapter-2/#more-165" class="more-link">Continue reading<span class="screen-reader-text"> “Clarifying local::lib and cpan in Chapter 2”</span></a></p> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="byline"><span class="author vcard"><img alt='' src='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=49&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=98&d=mm&r=g 2x' class='avatar avatar-49 photo' height='49' width='49' loading='lazy'/><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://www.intermediateperl.com/author/brian/">brian</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://www.intermediateperl.com/2012/10/clarifying-locallib-and-cpan-in-chapter-2/" rel="bookmark"><time class="entry-date published" datetime="2012-10-03T06:23:45+00:00">October 3, 2012</time><time class="updated" datetime="2022-05-13T05:46:59+00:00">May 13, 2022</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://www.intermediateperl.com/category/topics/cpan/" rel="category tag">CPAN</a></span> </footer><!-- .entry-footer --> </article><!-- #post-165 --> <article id="post-149" class="post-149 post type-post status-publish format-standard hentry category-the-writing-process"> <header class="entry-header"> <h2 class="entry-title"><a href="https://www.intermediateperl.com/2012/08/answers-for-oreilly-pr/" rel="bookmark">Answers for O’Reilly PR</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p>The O’Reilly public relations people asked me to answer some questions about the new <i>Intermediate Perl</i> so they can prepare <a href="http://press.oreilly.com/archive.html">materials for reviewers and the press</a>. As a reader of this website, however, you get the answers before they do, and you get my full answers, which might show up as edited excerpts in O’Reilly’s materials. <a href="https://www.intermediateperl.com/2012/08/answers-for-oreilly-pr/#more-149" class="more-link">Continue reading<span class="screen-reader-text"> “Answers for O’Reilly PR”</span></a></p> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="byline"><span class="author vcard"><img alt='' src='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=49&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=98&d=mm&r=g 2x' class='avatar avatar-49 photo' height='49' width='49' loading='lazy'/><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://www.intermediateperl.com/author/brian/">brian</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://www.intermediateperl.com/2012/08/answers-for-oreilly-pr/" rel="bookmark"><time class="entry-date published" datetime="2012-08-03T17:38:26+00:00">August 3, 2012</time><time class="updated" datetime="2022-05-13T05:46:59+00:00">May 13, 2022</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://www.intermediateperl.com/category/the-writing-process/" rel="category tag">The writing process</a></span><span class="comments-link"><a href="https://www.intermediateperl.com/2012/08/answers-for-oreilly-pr/#comments">2 Comments<span class="screen-reader-text"> on Answers for O’Reilly PR</span></a></span> </footer><!-- .entry-footer --> </article><!-- #post-149 --> <article id="post-145" class="post-145 post type-post status-publish format-standard hentry category-announcements category-sale"> <header class="entry-header"> <h2 class="entry-title"><a href="https://www.intermediateperl.com/2012/08/get-50-off-perl-ebooks-including-intermediate-perl/" rel="bookmark">Get 50% off Perl ebooks, including Intermediate Perl</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p>You can buy <i>Intermediate Perl</i> now, <a href="http://shop.oreilly.com/product/0636920012689.do">directly from O’Reilly in ebook form</a>. For the next week, you can buy it for 50% off using discount code <b>WKPER5</b>.</p> <div align="center"> <a href="http://shop.oreilly.com/product/0636920012689.do" style="text-decoration: none"><span class="big callout red" style="color: red; font-size: 6em; font-weight: bold; margin-top: 2em; margin-bottom: 2em; text-decoration: none">50% off</span></a><br /> </div> <p>Every ebook from O’Reilly is DRM free and come in PDF, ePub, and Mobi formats. If you’ve authorized <a href="http://shop.oreilly.com/category/customer-service/dropbox.do">O’Reilly’s Dropbox app</a>, once you’ll purchase the books they’ll sync to your Dropbox account (in <i>~/Dropbox/Apps/O’Reilly Media</i>). You can read them on any device anywhere you are.</p> <p>The print version is still making its way out of the printers and to distributors, but we expect it to show up in the next three weeks.</p> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="byline"><span class="author vcard"><img alt='' src='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=49&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=98&d=mm&r=g 2x' class='avatar avatar-49 photo' height='49' width='49' loading='lazy'/><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://www.intermediateperl.com/author/brian/">brian</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://www.intermediateperl.com/2012/08/get-50-off-perl-ebooks-including-intermediate-perl/" rel="bookmark"><time class="entry-date published" datetime="2012-08-02T15:22:06+00:00">August 2, 2012</time><time class="updated" datetime="2022-05-13T05:46:59+00:00">May 13, 2022</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://www.intermediateperl.com/category/announcements/" rel="category tag">Announcements</a>, <a href="https://www.intermediateperl.com/category/announcements/sale/" rel="category tag">Sale</a></span><span class="comments-link"><a href="https://www.intermediateperl.com/2012/08/get-50-off-perl-ebooks-including-intermediate-perl/#comments">2 Comments<span class="screen-reader-text"> on Get 502 off Perl ebooks, including Intermediate Perl</span></a></span> </footer><!-- .entry-footer --> </article><!-- #post-145 --> <article id="post-142" class="post-142 post type-post status-publish format-standard hentry category-announcements"> <header class="entry-header"> <h2 class="entry-title"><a href="https://www.intermediateperl.com/2012/07/intermediate-perl-is-available-for-pre-order/" rel="bookmark">Intermediate Perl is available for pre-order</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p>You can now buy <i>Intermediate Perl</i>. I’ve just submitted the final changes and the final publishing bits should finish this week, sending the result to the printers very soon. The book should ship before the end of August.</p> <p><br clear="all"/></p> <ul> <li><a href="http://shop.oreilly.com/product/0636920012689.do">O’Reilly</a> <li><a href="https://www.amazon.com/gp/product/1449393098/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1449393098&linkCode=as2&tag=scriperl-20">Amazon.com</a> <li><a href="https://www.amazon.co.uk/Intermediate-Perl-Randal-L-Schwartz/dp/1449393098/ref=sr_1_2?ie=UTF8&qid=1342651800&sr=8-2">Amazon.co.uk</a> <li><a href="https://www.amazon.ca/Intermediate-Perl-Randal-L-Schwartz/dp/1449393098/ref=sr_1_1?ie=UTF8&qid=1342651886&sr=8-1">Amazon.ca</a> <li><a href="https://www.amazon.de/Intermediate-Perl-Randal-L-Schwartz/dp/1449393098/ref=sr_1_4?ie=UTF8&qid=1342651835&sr=8-4">Amazon.de (in English)</a> </ul> <p>If I haven’t listed your favorite bookseller, send a link. </p> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="byline"><span class="author vcard"><img alt='' src='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=49&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=98&d=mm&r=g 2x' class='avatar avatar-49 photo' height='49' width='49' loading='lazy'/><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://www.intermediateperl.com/author/brian/">brian</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://www.intermediateperl.com/2012/07/intermediate-perl-is-available-for-pre-order/" rel="bookmark"><time class="entry-date published" datetime="2012-07-18T22:54:15+00:00">July 18, 2012</time><time class="updated" datetime="2022-05-13T05:46:59+00:00">May 13, 2022</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://www.intermediateperl.com/category/announcements/" rel="category tag">Announcements</a></span> </footer><!-- .entry-footer --> </article><!-- #post-142 --> <article id="post-132" class="post-132 post type-post status-publish format-standard hentry category-the-writing-process"> <header class="entry-header"> <h2 class="entry-title"><a href="https://www.intermediateperl.com/2012/07/syntax-coloring-in-intermediate-perl-pdf/" rel="bookmark">Syntax coloring in Intermediate Perl PDF</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p>O’Reilly wants to try an experiment with the <i>Intermediate Perl</i> PDF. We’re not limited by the physical process of putting ink on paper (and it’s a bit expensive to have more than one color of ink). I’m just going to show you the images and let you tell me what you think. <a href="https://www.intermediateperl.com/2012/07/syntax-coloring-in-intermediate-perl-pdf/#more-132" class="more-link">Continue reading<span class="screen-reader-text"> “Syntax coloring in Intermediate Perl PDF”</span></a></p> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="byline"><span class="author vcard"><img alt='' src='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=49&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=98&d=mm&r=g 2x' class='avatar avatar-49 photo' height='49' width='49' loading='lazy'/><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://www.intermediateperl.com/author/brian/">brian</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://www.intermediateperl.com/2012/07/syntax-coloring-in-intermediate-perl-pdf/" rel="bookmark"><time class="entry-date published" datetime="2012-07-06T07:39:26+00:00">July 6, 2012</time><time class="updated" datetime="2022-05-13T05:46:59+00:00">May 13, 2022</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://www.intermediateperl.com/category/the-writing-process/" rel="category tag">The writing process</a></span><span class="comments-link"><a href="https://www.intermediateperl.com/2012/07/syntax-coloring-in-intermediate-perl-pdf/#comments">4 Comments<span class="screen-reader-text"> on Syntax coloring in Intermediate Perl PDF</span></a></span> </footer><!-- .entry-footer --> </article><!-- #post-132 --> <article id="post-130" class="post-130 post type-post status-publish format-standard hentry category-the-writing-process"> <header class="entry-header"> <h2 class="entry-title"><a href="https://www.intermediateperl.com/2012/05/fixing-bugs-instead-of-explaining-them/" rel="bookmark">Fixing bugs instead of explaining them</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p>David Golden, one of the reviewers for <i>Intermediate Perl</i>, gave me extensive comments about one of the test program examples in the book. I made a simple example using <a href="https://www.metacpan.org/module/Test::Output">Test::Output</a>, a module I sometimes use but didn’t write. It solved my needs at the time, but it has some issues. Perl’s output is complicated, and the simple <code>tie</code> in <a href="https://www.metacpan.org/module/Test::Output::Tie">Test::Output::Tie</a> doesn’t cover all the cases.</p> <p>I’m the current maintainer of the module, and rather than explain the edge cases in my example (or fix the module), I merely mentioned to David that we should reimplement <a href="https://www.metacpan.org/module/Test::Output">Test::Output</a> with <a href="https://www.metacpan.org/module/Capture::Tiny">Capture:Tiny</a>, his module that handles almost all cases. I meant “we” in the universal sense, and I didn’t say much because I was busy writing the book. A couple of hours later, David sends me <a href="https://github.com/briandfoy/test-output/pull/2/merge">a pull request</a>.</p> <p>That often happens as part of the writing process. If something is too hard to explain, it’s probably too hard to use. The time explaining it is better spent making it clear, unbuggy, or whatever it takes to avoid the explanation. In this case, it’s even better when someone else did it.</p> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="byline"><span class="author vcard"><img alt='' src='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=49&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=98&d=mm&r=g 2x' class='avatar avatar-49 photo' height='49' width='49' loading='lazy'/><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://www.intermediateperl.com/author/brian/">brian</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://www.intermediateperl.com/2012/05/fixing-bugs-instead-of-explaining-them/" rel="bookmark"><time class="entry-date published" datetime="2012-05-14T21:39:28+00:00">May 14, 2012</time><time class="updated" datetime="2022-05-13T05:46:59+00:00">May 13, 2022</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://www.intermediateperl.com/category/the-writing-process/" rel="category tag">The writing process</a></span> </footer><!-- .entry-footer --> </article><!-- #post-130 --> <article id="post-125" class="post-125 post type-post status-publish format-standard hentry category-the-writing-process"> <header class="entry-header"> <h2 class="entry-title"><a href="https://www.intermediateperl.com/2012/05/the-alpaca-is-on-its-way/" rel="bookmark">The Alpaca is on its way</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p><a href="http://www.oreilly.com">O’Reilly</a> now has <i>Intermediate Perl, Second Edition</i>. Just this morning, in time for the open of business on the East Coast, I finished fixing the final reviewer comments. I went through over 300 pages of extensive comments: <a href="https://www.intermediateperl.com/2012/05/the-alpaca-is-on-its-way/#more-125" class="more-link">Continue reading<span class="screen-reader-text"> “The Alpaca is on its way”</span></a></p> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="byline"><span class="author vcard"><img alt='' src='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=49&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=98&d=mm&r=g 2x' class='avatar avatar-49 photo' height='49' width='49' loading='lazy'/><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://www.intermediateperl.com/author/brian/">brian</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://www.intermediateperl.com/2012/05/the-alpaca-is-on-its-way/" rel="bookmark"><time class="entry-date published" datetime="2012-05-14T12:05:52+00:00">May 14, 2012</time><time class="updated" datetime="2022-05-13T05:46:59+00:00">May 13, 2022</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://www.intermediateperl.com/category/the-writing-process/" rel="category tag">The writing process</a></span> </footer><!-- .entry-footer --> </article><!-- #post-125 --> <article id="post-123" class="post-123 post type-post status-publish format-standard hentry category-packages"> <header class="entry-header"> <h2 class="entry-title"><a href="https://www.intermediateperl.com/2012/05/multiple-package-version-declarations/" rel="bookmark">Multiple package VERSION declarations</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p>I’m re-reading the parts of <i>Intermediate Perl</i> where we introduce packages. Perl v5.12 introduced an expanded <code>package</code> syntax to include a version and a block:</p> <pre class="brush:perl"> package Foo { ... } package Foo 1.23; package Foo 1.23 { ... } </pre> <p>That almost seems to imply that you’d have to completely define the package inside the block if you use a block, but as you know from everything else you’ve experienced in the language, Perl is happy to let you muck with other things. You can <i>add</i> to the package later: <a href="https://www.intermediateperl.com/2012/05/multiple-package-version-declarations/#more-123" class="more-link">Continue reading<span class="screen-reader-text"> “Multiple package VERSION declarations”</span></a></p> </div><!-- .entry-content --> <footer class="entry-footer"> <span class="byline"><span class="author vcard"><img alt='' src='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=49&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=98&d=mm&r=g 2x' class='avatar avatar-49 photo' height='49' width='49' loading='lazy'/><span class="screen-reader-text">Author </span> <a class="url fn n" href="https://www.intermediateperl.com/author/brian/">brian</a></span></span><span class="posted-on"><span class="screen-reader-text">Posted on </span><a href="https://www.intermediateperl.com/2012/05/multiple-package-version-declarations/" rel="bookmark"><time class="entry-date published" datetime="2012-05-04T21:10:04+00:00">May 4, 2012</time><time class="updated" datetime="2022-05-13T05:46:59+00:00">May 13, 2022</time></a></span><span class="cat-links"><span class="screen-reader-text">Categories </span><a href="https://www.intermediateperl.com/category/topics/packages/" rel="category tag">Packages</a></span> </footer><!-- .entry-footer --> </article><!-- #post-123 --> <nav class="navigation pagination" role="navigation" aria-label="Posts"> <h2 class="screen-reader-text">Posts navigation</h2> <div class="nav-links"><a class="prev page-numbers" href="https://www.intermediateperl.com/">Previous page</a> <a class="page-numbers" href="https://www.intermediateperl.com/"><span class="meta-nav screen-reader-text">Page </span>1</a> <span aria-current="page" class="page-numbers current"><span class="meta-nav screen-reader-text">Page </span>2</span> <a class="page-numbers" href="https://www.intermediateperl.com/page/3/"><span class="meta-nav screen-reader-text">Page </span>3</a> <a class="next page-numbers" href="https://www.intermediateperl.com/page/3/">Next page</a></div> </nav> </main><!-- .site-main --> </div><!-- .content-area --> <aside id="secondary" class="sidebar widget-area"> <section id="text-3" class="widget widget_text"> <div class="textwidget"><div id="book_picture" align="center"> <a href="https://amzn.to/2Um09A7"><img src="https://www.intermediateperl.com/images/alpaca-cover.jpg" width="180" height="236"></a> </div> <br/> <div id="donate" align="center"> <script async type="text/javascript" id='fbnufur'>(function(i){var f,s=document.getElementById(i);f=document.createElement('iframe');f.src='//button.flattr.com/view/?uid=briandfoy&button=compact&url='+encodeURIComponent(document.URL);f.title='Flattr';f.height=20;f.width=110;f.style.borderWidth=0;s.parentNode.insertBefore(f,s);})('fbnufur');</script> <br/> <form action="https://www.paypal.com/cgi-bin/webscr" method="post"> <input type="hidden" name="cmd" value="_s-xclick" /> <input type="hidden" name="hosted_button_id" value="11077925" /> <input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!" /> <img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1" /> </form> </div> <br /> </div> </section> <section id="recent-posts-3" class="widget widget_recent_entries"> <h2 class="widget-title">Latest Items</h2><nav role="navigation" aria-label="Latest Items"> <ul> <li> <a href="https://www.intermediateperl.com/2019/01/fizzbin-with-no-ifs-ands-or-buts/">FizzBin with no ifs, ands, or buts.</a> </li> <li> <a href="https://www.intermediateperl.com/2018/03/appveyor-combined-linux-and-windows-perl-module-testing/">AppVeyor combined Linux and Windows Perl module testing</a> </li> <li> <a href="https://www.intermediateperl.com/2018/01/list-comprehensions-in-perl-almost/">List comprehensions in Perl (almost)</a> </li> <li> <a href="https://www.intermediateperl.com/2017/08/skipping-automated-coverage-testing-for-v5-8-on-travis/">Skipping automated coverage testing for v5.8 on Travis</a> </li> </ul> </nav></section><section id="categories-3" class="widget widget_categories"><h2 class="widget-title">Topics</h2><form action="https://www.intermediateperl.com" method="get"><label class="screen-reader-text" for="cat">Topics</label><select name='cat' id='cat' class='postform' > <option value='-1'>Select Category</option> <option class="level-0" value="4">Announcements (4)</option> <option class="level-1" value="7"> Sale (1)</option> <option class="level-0" value="10">Graphics (1)</option> <option class="level-0" value="9">publishing (1)</option> <option class="level-0" value="3">The writing process (5)</option> <option class="level-0" value="5">Topics (13)</option> <option class="level-1" value="8"> CPAN (1)</option> <option class="level-1" value="12"> Glue (1)</option> <option class="level-1" value="15"> Lists (1)</option> <option class="level-1" value="6"> Moose (1)</option> <option class="level-1" value="11"> Packages (1)</option> <option class="level-1" value="16"> References (2)</option> <option class="level-1" value="13"> Regular Expressions (1)</option> <option class="level-1" value="14"> Testing (6)</option> </select> </form> <script> /* <![CDATA[ */ (function() { var dropdown = document.getElementById( "cat" ); function onCatChange() { if ( dropdown.options[ dropdown.selectedIndex ].value > 0 ) { dropdown.parentNode.submit(); } } dropdown.onchange = onCatChange; })(); /* ]]> */ </script> </section><section id="archives-3" class="widget widget_archive"><h2 class="widget-title">Archives</h2> <label class="screen-reader-text" for="archives-dropdown-3">Archives</label> <select id="archives-dropdown-3" name="archive-dropdown"> <option value="">Select Month</option> <option value='https://www.intermediateperl.com/2019/01/'> January 2019 (1)</option> <option value='https://www.intermediateperl.com/2018/03/'> March 2018 (1)</option> <option value='https://www.intermediateperl.com/2018/01/'> January 2018 (1)</option> <option value='https://www.intermediateperl.com/2017/08/'> August 2017 (1)</option> <option value='https://www.intermediateperl.com/2017/05/'> May 2017 (1)</option> <option value='https://www.intermediateperl.com/2016/11/'> November 2016 (2)</option> <option value='https://www.intermediateperl.com/2016/06/'> June 2016 (1)</option> <option value='https://www.intermediateperl.com/2015/06/'> June 2015 (1)</option> <option value='https://www.intermediateperl.com/2015/04/'> April 2015 (1)</option> <option value='https://www.intermediateperl.com/2013/06/'> June 2013 (2)</option> <option value='https://www.intermediateperl.com/2012/10/'> October 2012 (1)</option> <option value='https://www.intermediateperl.com/2012/08/'> August 2012 (2)</option> <option value='https://www.intermediateperl.com/2012/07/'> July 2012 (2)</option> <option value='https://www.intermediateperl.com/2012/05/'> May 2012 (3)</option> <option value='https://www.intermediateperl.com/2012/04/'> April 2012 (1)</option> <option value='https://www.intermediateperl.com/2012/03/'> March 2012 (1)</option> <option value='https://www.intermediateperl.com/2012/01/'> January 2012 (1)</option> </select> <script> /* <![CDATA[ */ (function() { var dropdown = document.getElementById( "archives-dropdown-3" ); function onSelectChange() { if ( dropdown.options[ dropdown.selectedIndex ].value !== '' ) { document.location.href = this.options[ this.selectedIndex ].value; } } dropdown.onchange = onSelectChange; })(); /* ]]> */ </script> </section><section id="text-4" class="widget widget_text"><h2 class="widget-title">External Links</h2> <div class="textwidget"><ul> <li><a href="https://www.amazon.com/gp/product/1449393098/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1449393098&linkCode=as2&tag=hashbang09-20&linkId=6U7C3PEQ3C6PXH6G">Amazon.com</a> <li><a class="external" href="http://shop.oreilly.com/product/9780596102067.do">O'Reilly catalog page</a></li> <li><a class="external" href="http://my.safaribooksonline.com/book/-/9780596102067">Safari Books Online</a></li> <li><a class="external" href="http://oreilly.com/catalog/errata.csp?isbn=9780596102067">Errata</a> <li><a class="external" href="http://perldoc.perl.org">Official Perl documentation</a> <li><a class="external" href="http://faq.perl.org">Official Perl FAQ</a> <li><a class="external" href="http://www.theperlreview.com">The Perl Review</a> <li><a class="external" href="http://www.learning-perl.com">Learning Perl</a></li> <li><a class="external" href="http://www.programmingperl.org">Programming Perl</a></li> <li><a class="external" href="http://www.effectiveperlprogramming.com">The Effective Perler</a> </ul></div> </section><section id="text-5" class="widget widget_text"> <div class="textwidget"><div align="center"> <script> var amzn_wdgt={widget:'Carousel'}; amzn_wdgt.tag='hashbang09-20'; amzn_wdgt.widgetType='ASINList'; amzn_wdgt.title='Our Perl Books'; amzn_wdgt.width='250'; amzn_wdgt.ASIN='1449303587,1449393098,144939311X,0321496949,059600492,0596004923'; amzn_wdgt.width='200'; amzn_wdgt.height='600'; </script> <script src="https://wms.assoc-amazon.com/20070822/US/js/swfobject_1_5.js"> </script> </div></div> </section> </aside><!-- .sidebar .widget-area --> </div><!-- .site-content --> <footer id="colophon" class="site-footer"> <nav class="main-navigation" aria-label="Footer Primary Menu"> <div class="menu-menu-container"><ul id="menu-menu-1" class="primary-menu"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-267"><a href="https://www.intermediateperl.com/reviews/">Reviews</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-268"><a href="https://www.intermediateperl.com/downloads_page/">Downloads</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-269"><a href="https://www.intermediateperl.com/colophon/">Colophon</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-270"><a href="https://www.intermediateperl.com/about-the-site/">About the site</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-271"><a href="https://www.intermediateperl.com/about/">About the book</a></li> </ul></div> </nav><!-- .main-navigation --> <div class="site-info"> <span class="site-title"><a href="https://www.intermediateperl.com/" rel="home">Intermediate Perl</a></span> <a href="https://wordpress.org/" class="imprint"> Proudly powered by WordPress </a> </div><!-- .site-info --> </footer><!-- .site-footer --> </div><!-- .site-inner --> </div><!-- .site --> <script src='https://www.intermediateperl.com/wp-content/themes/twentysixteen/js/skip-link-focus-fix.js?ver=20170530' id='twentysixteen-skip-link-focus-fix-js'></script> <script id='twentysixteen-script-js-extra'> var screenReaderText = {"expand":"expand child menu","collapse":"collapse child menu"}; </script> <script src='https://www.intermediateperl.com/wp-content/themes/twentysixteen/js/functions.js?ver=20181217' id='twentysixteen-script-js'></script> <script src='https://www.intermediateperl.com/wp-includes/js/wp-embed.min.js?ver=5.8.3' id='wp-embed-js'></script> </body> </html>