CINXE.COM
Intermediate Perl
<!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</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 wp-embed-responsive 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-260" class="post-260 post type-post status-publish format-standard hentry category-references"> <header class="entry-header"> <h2 class="entry-title"><a href="https://www.intermediateperl.com/2019/01/fizzbin-with-no-ifs-ands-or-buts/" rel="bookmark">FizzBin with no ifs, ands, or buts.</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p>Today at my current client, there was some disagreement over the scoring of job candidates’ FizzBin solutions in the code test portion of the interview. They are allowed to use whatever language they choose but almost everyone does the same thing. <a href="https://graysonkoonce.com/fizzbuzz-in-golang/">Grayson Koonce has a good explanation of the problem with his evolving solution in Go</a>. I decided to do the exercise myself but with extra constraints. I wouldn’t use any conditionals.</p> <p> <a href="https://www.intermediateperl.com/2019/01/fizzbin-with-no-ifs-ands-or-buts/#more-260" class="more-link">Continue reading<span class="screen-reader-text"> “FizzBin with no ifs, ands, or buts.”</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/2019/01/fizzbin-with-no-ifs-ands-or-buts/" rel="bookmark"><time class="entry-date published" datetime="2019-01-14T12:03:48+00:00">January 14, 2019</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/references/" rel="category tag">References</a></span> </footer><!-- .entry-footer --> </article><!-- #post-260 --> <article id="post-248" class="post-248 post type-post status-publish format-standard hentry category-testing tag-appveyor tag-continuous-integration"> <header class="entry-header"> <h2 class="entry-title"><a href="https://www.intermediateperl.com/2018/03/appveyor-combined-linux-and-windows-perl-module-testing/" rel="bookmark">AppVeyor combined Linux and Windows Perl module testing</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p><a href="https://www.appveyor.com/docs/getting-started-with-appveyor-for-linux/">AppVeyor is starting to support Ubuntu builds</a> so I’m playing with some configurations for that by adjusting the <a href="/2017/05/automated-testing-on-windows-with-appveyor/">pure Windows config I wrote about earlier</a>. <a href="https://www.intermediateperl.com/2018/03/appveyor-combined-linux-and-windows-perl-module-testing/#more-248" class="more-link">Continue reading<span class="screen-reader-text"> “AppVeyor combined Linux and Windows Perl module testing”</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/2018/03/appveyor-combined-linux-and-windows-perl-module-testing/" rel="bookmark"><time class="entry-date published" datetime="2018-03-13T22:21:51+00:00">March 13, 2018</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/testing/" rel="category tag">Testing</a></span><span class="tags-links"><span class="screen-reader-text">Tags </span><a href="https://www.intermediateperl.com/tag/appveyor/" rel="tag">appveyor</a>, <a href="https://www.intermediateperl.com/tag/continuous-integration/" rel="tag">continuous integration</a></span> </footer><!-- .entry-footer --> </article><!-- #post-248 --> <article id="post-209" class="post-209 post type-post status-publish format-standard hentry category-lists category-references"> <header class="entry-header"> <h2 class="entry-title"><a href="https://www.intermediateperl.com/2018/01/list-comprehensions-in-perl-almost/" rel="bookmark">List comprehensions in Perl (almost)</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p><i>[I wrote this about two years ago and waited for some inspiration that would make it a little better. That inspiration never showed up. In the new year I’m cleaning out all the draft articles though.]</i></p> <p>I went off to see what list comprehensions are all about. Lately I’ve run across several bits of Python I’ve wanted to use. I don’t mind Python so much but I’m certainly rusty; I spend some time on <a href="http://stackoverflow.com/questions/tagged/python">StackOverflow</a> where I run into the term “list comprehension” quite a bit. They sure like whatever that is so I went off to investigate. Someone might want one of those in Perl, hence the click-baity title of this post (a better one might be “12 Ways to…”). <a href="https://www.intermediateperl.com/2018/01/list-comprehensions-in-perl-almost/#more-209" class="more-link">Continue reading<span class="screen-reader-text"> “List comprehensions in Perl (almost)”</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/2018/01/list-comprehensions-in-perl-almost/" rel="bookmark"><time class="entry-date published" datetime="2018-01-10T11:03:55+00:00">January 10, 2018</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/lists/" rel="category tag">Lists</a>, <a href="https://www.intermediateperl.com/category/topics/references/" rel="category tag">References</a></span><span class="comments-link"><a href="https://www.intermediateperl.com/2018/01/list-comprehensions-in-perl-almost/#comments">4 Comments<span class="screen-reader-text"> on List comprehensions in Perl (almost)</span></a></span> </footer><!-- .entry-footer --> </article><!-- #post-209 --> <article id="post-238" class="post-238 post type-post status-publish format-standard hentry category-testing tag-continuous-integration tag-travis"> <header class="entry-header"> <h2 class="entry-title"><a href="https://www.intermediateperl.com/2017/08/skipping-automated-coverage-testing-for-v5-8-on-travis/" rel="bookmark">Skipping automated coverage testing for v5.8 on Travis</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p>Previously I had a <a href="/2016/11/using-an-older-version-of-develcover-to-test-v5-8/">kludge to allow coverage testing on v5.8 through Travis CI</a>. I used <i>cpanm</i> to install exactly <a href="https://www.metacpan.org/modules/Devel::Cover">Devel::Cover</a> 1.23 because it supported v5.8. The problem now is that it doesn’t support v5.26 and my automated testing fails. <a href="https://www.intermediateperl.com/2017/08/skipping-automated-coverage-testing-for-v5-8-on-travis/#more-238" class="more-link">Continue reading<span class="screen-reader-text"> “Skipping automated coverage testing for v5.8 on Travis”</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/2017/08/skipping-automated-coverage-testing-for-v5-8-on-travis/" rel="bookmark"><time class="entry-date published" datetime="2017-08-13T21:52:58+00:00">August 13, 2017</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/testing/" rel="category tag">Testing</a></span><span class="tags-links"><span class="screen-reader-text">Tags </span><a href="https://www.intermediateperl.com/tag/continuous-integration/" rel="tag">continuous integration</a>, <a href="https://www.intermediateperl.com/tag/travis/" rel="tag">travis</a></span> </footer><!-- .entry-footer --> </article><!-- #post-238 --> <article id="post-234" class="post-234 post type-post status-publish format-standard hentry category-testing tag-appveyor tag-continuous-integration"> <header class="entry-header"> <h2 class="entry-title"><a href="https://www.intermediateperl.com/2017/05/automated-testing-on-windows-with-appveyor/" rel="bookmark">Automated Testing on Windows with AppVeyor</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p>You can test Perl on Windows with continuous integration through AppVeyor. I previously showed <a href="/2016/11/automated-testing-with-travis-ci/">an example of with Travis CI</a> but that was limited to Linux. You can easily set up an account through GitHub (or other means), select projects to test, and let it do its work. <a href="https://www.intermediateperl.com/2017/05/automated-testing-on-windows-with-appveyor/#more-234" class="more-link">Continue reading<span class="screen-reader-text"> “Automated Testing on Windows with AppVeyor”</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/2017/05/automated-testing-on-windows-with-appveyor/" rel="bookmark"><time class="entry-date published" datetime="2017-05-04T12:36:04+00:00">May 4, 2017</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/testing/" rel="category tag">Testing</a></span><span class="tags-links"><span class="screen-reader-text">Tags </span><a href="https://www.intermediateperl.com/tag/appveyor/" rel="tag">appveyor</a>, <a href="https://www.intermediateperl.com/tag/continuous-integration/" rel="tag">continuous integration</a></span> </footer><!-- .entry-footer --> </article><!-- #post-234 --> <article id="post-239" class="post-239 post type-post status-publish format-standard hentry category-testing tag-continuous-integration tag-travis"> <header class="entry-header"> <h2 class="entry-title"><a href="https://www.intermediateperl.com/2016/11/using-an-older-version-of-develcover-to-test-v5-8/" rel="bookmark">Using an older version of Devel::Cover to test v5.8</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p>I’ve had a problem with automated coverage testing and v5.8 (the oldest Perl that I support). <a href="https://www.metacpan.org/module/Devel::Cover">Devel::Cover</a> made some changes after 1.23 so that it doesn’t guarantee support for v5.8 and earlier. It might work but you’re lucky if it is. <a href="https://www.intermediateperl.com/2016/11/using-an-older-version-of-develcover-to-test-v5-8/#more-239" class="more-link">Continue reading<span class="screen-reader-text"> “Using an older version of Devel::Cover to test v5.8”</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/2016/11/using-an-older-version-of-develcover-to-test-v5-8/" rel="bookmark"><time class="entry-date published" datetime="2016-11-29T21:04:12+00:00">November 29, 2016</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/testing/" rel="category tag">Testing</a></span><span class="tags-links"><span class="screen-reader-text">Tags </span><a href="https://www.intermediateperl.com/tag/continuous-integration/" rel="tag">continuous integration</a>, <a href="https://www.intermediateperl.com/tag/travis/" rel="tag">travis</a></span> </footer><!-- .entry-footer --> </article><!-- #post-239 --> <article id="post-226" class="post-226 post type-post status-publish format-standard hentry category-testing tag-continuous-integration tag-travis"> <header class="entry-header"> <h2 class="entry-title"><a href="https://www.intermediateperl.com/2016/11/automated-testing-with-travis-ci/" rel="bookmark">Automated testing with Travis CI</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p><i>Intermediate Perl</i> shows the basics of Perl testing. We show you how to write test programs and how to run those from the command line. That’s the language-specific stuff and within the scope of the book. You can take it further though. You can set up your code in a “continuous integration” system that runs the tests whenever you commit change (most of these trigger on a source control commit). You commit your code and grab some more coffee while your tests trigger themselves. <a href="https://www.martinfowler.com/articles/continuousIntegration.html ">Martin Fowler has some interesting thoughts on CI</a> and wikipedia has a <a href="https://en.wikipedia.org/wiki/Comparison_of_continuous_integration_software">comparison matrix of CI services</a>. <a href="https://www.intermediateperl.com/2016/11/automated-testing-with-travis-ci/#more-226" class="more-link">Continue reading<span class="screen-reader-text"> “Automated testing with Travis CI”</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/2016/11/automated-testing-with-travis-ci/" rel="bookmark"><time class="entry-date published" datetime="2016-11-27T12:56:02+00:00">November 27, 2016</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/testing/" rel="category tag">Testing</a></span><span class="tags-links"><span class="screen-reader-text">Tags </span><a href="https://www.intermediateperl.com/tag/continuous-integration/" rel="tag">continuous integration</a>, <a href="https://www.intermediateperl.com/tag/travis/" rel="tag">travis</a></span> </footer><!-- .entry-footer --> </article><!-- #post-226 --> <article id="post-212" class="post-212 post type-post status-publish format-standard hentry category-testing"> <header class="entry-header"> <h2 class="entry-title"><a href="https://www.intermediateperl.com/2016/06/trying-to-divide-the-smallest-hexadecimal-number/" rel="bookmark">Trying to divide the smallest hexadecimal number</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p>You can run into problems relying on the averages of floating point numbers. This is something I think about often after reading Sinan Ünür’s <a href="//www.nu42.com/2015/03/how-you-average-numbers.html">How you average numbers matters</a>. I thought about it again when I read Honza Brabec’s <a href="//blog.honzabrabec.cz/2016/06/05/mean-of-two-floating-point-numbers-can-be-dangerous/">Mean of two floating point numbers can be dangerous</a>. Despite the hyperbole of <a href="//www.google.com/#q=%22can+be+dangerous%22">“can be dangerous”</a> (see <a href="//meyerweb.com/eric/comment/chech.html">“Considered Harmful” Essays Considered Harmful</a>), it certainly can do something that you don’t intend. <a href="https://www.intermediateperl.com/2016/06/trying-to-divide-the-smallest-hexadecimal-number/#more-212" class="more-link">Continue reading<span class="screen-reader-text"> “Trying to divide the smallest hexadecimal number”</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/2016/06/trying-to-divide-the-smallest-hexadecimal-number/" rel="bookmark"><time class="entry-date published" datetime="2016-06-08T05:21:31+00:00">June 8, 2016</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/testing/" rel="category tag">Testing</a></span> </footer><!-- .entry-footer --> </article><!-- #post-212 --> <article id="post-200" class="post-200 post type-post status-publish format-standard hentry category-glue"> <header class="entry-header"> <h2 class="entry-title"><a href="https://www.intermediateperl.com/2015/06/using-inlinec-to-look-at-a-numbers-double-representation/" rel="bookmark">Using Inline::C to look at a number’s double representation</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p>Since Perl v5.22 added hexadecimal floating-point numbers, I investigated how floating point numbers are actually represented. These are specified in <a href="http://steve.hollasch.net/cgindex/coding/ieeefloat.html">IEEE 754</a> and are something you’ve probably taken for granted. I can use <a href="http://www.metacpan.org/module/Inline::C">Inline::C</a> to play with these. <a href="https://www.intermediateperl.com/2015/06/using-inlinec-to-look-at-a-numbers-double-representation/#more-200" class="more-link">Continue reading<span class="screen-reader-text"> “Using Inline::C to look at a number’s double representation”</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/2015/06/using-inlinec-to-look-at-a-numbers-double-representation/" rel="bookmark"><time class="entry-date published" datetime="2015-06-17T00:12:18+00:00">June 17, 2015</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/glue/" rel="category tag">Glue</a></span> </footer><!-- .entry-footer --> </article><!-- #post-200 --> <article id="post-207" class="post-207 post type-post status-publish format-standard hentry category-regular-expressions"> <header class="entry-header"> <h2 class="entry-title"><a href="https://www.intermediateperl.com/2015/04/pre-compiled-patterns-retain-their-settings-if-they-are-interpolated/" rel="bookmark">Pre-compiled patterns retain their settings if they are interpolated</a></h2> </header><!-- .entry-header --> <div class="entry-content"> <p>The <code>qr//</code> operator precompiles a regular expression and returns a reference to that compiled pattern. You can use that reference with the binding operator to perform a match, interpolate the reference into the match or substitution operators, or combine the reference with other references or literal patterns to make a larger pattern. We cover this in Chapter 9, “Regular Expression References”, but don’t emphasize what happens with regex flags when you combine patterns. <a href="https://www.intermediateperl.com/2015/04/pre-compiled-patterns-retain-their-settings-if-they-are-interpolated/#more-207" class="more-link">Continue reading<span class="screen-reader-text"> “Pre-compiled patterns retain their settings if they are interpolated”</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/2015/04/pre-compiled-patterns-retain-their-settings-if-they-are-interpolated/" rel="bookmark"><time class="entry-date published" datetime="2015-04-10T14:56:22+00:00">April 10, 2015</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/regular-expressions/" rel="category tag">Regular Expressions</a></span> </footer><!-- .entry-footer --> </article><!-- #post-207 --> <nav class="navigation pagination" role="navigation" aria-label="Posts"> <h2 class="screen-reader-text">Posts navigation</h2> <div class="nav-links"><span aria-current="page" class="page-numbers current"><span class="meta-nav screen-reader-text">Page </span>1</span> <a class="page-numbers" href="https://www.intermediateperl.com/page/2/"><span class="meta-nav screen-reader-text">Page </span>2</a> <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/2/">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>