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 &raquo; Feed" href="https://www.intermediateperl.com/feed/" /> <link rel="alternate" type="application/rss+xml" title="Intermediate Perl &raquo; 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&#038;subset=latin%2Clatin-ext&#038;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&#8217; 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&#8217;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"> &#8220;FizzBin with no ifs, ands, or buts.&#8221;</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&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=98&#038;d=mm&#038;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&#8217;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"> &#8220;AppVeyor combined Linux and Windows Perl module testing&#8221;</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&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=98&#038;d=mm&#038;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&#8217;m cleaning out all the draft articles though.]</i></p> <p>I went off to see what list comprehensions are all about. Lately I&#8217;ve run across several bits of Python I&#8217;ve wanted to use. I don&#8217;t mind Python so much but I&#8217;m certainly rusty; I spend some time on <a href="http://stackoverflow.com/questions/tagged/python">StackOverflow</a> where I run into the term &#8220;list comprehension&#8221; 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 &#8220;12 Ways to&#8230;&#8221;). <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"> &#8220;List comprehensions in Perl (almost)&#8221;</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&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=98&#038;d=mm&#038;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&#8217;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"> &#8220;Skipping automated coverage testing for v5.8 on Travis&#8221;</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&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=98&#038;d=mm&#038;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"> &#8220;Automated Testing on Windows with AppVeyor&#8221;</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&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=98&#038;d=mm&#038;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&#8217;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&#8217;t guarantee support for v5.8 and earlier. It might work but you&#8217;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"> &#8220;Using an older version of Devel::Cover to test v5.8&#8221;</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&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=98&#038;d=mm&#038;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&#8217;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 &#8220;continuous integration&#8221; 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"> &#8220;Automated testing with Travis CI&#8221;</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&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=98&#038;d=mm&#038;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&#8217;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&#8217;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">&#8220;can be dangerous&#8221;</a> (see <a href="//meyerweb.com/eric/comment/chech.html">“Considered Harmful” Essays Considered Harmful</a>), it certainly can do something that you don&#8217;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"> &#8220;Trying to divide the smallest hexadecimal number&#8221;</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&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=98&#038;d=mm&#038;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&#8217;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&#8217;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"> &#8220;Using Inline::C to look at a number&#8217;s double representation&#8221;</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&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=98&#038;d=mm&#038;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, &#8220;Regular Expression References&#8221;, but don&#8217;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"> &#8220;Pre-compiled patterns retain their settings if they are interpolated&#8221;</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&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/edd8638efe875601bfe394a8aea5b16d?s=98&#038;d=mm&#038;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&nbsp;&nbsp;(4)</option> <option class="level-1" value="7">&nbsp;&nbsp;&nbsp;Sale&nbsp;&nbsp;(1)</option> <option class="level-0" value="10">Graphics&nbsp;&nbsp;(1)</option> <option class="level-0" value="9">publishing&nbsp;&nbsp;(1)</option> <option class="level-0" value="3">The writing process&nbsp;&nbsp;(5)</option> <option class="level-0" value="5">Topics&nbsp;&nbsp;(13)</option> <option class="level-1" value="8">&nbsp;&nbsp;&nbsp;CPAN&nbsp;&nbsp;(1)</option> <option class="level-1" value="12">&nbsp;&nbsp;&nbsp;Glue&nbsp;&nbsp;(1)</option> <option class="level-1" value="15">&nbsp;&nbsp;&nbsp;Lists&nbsp;&nbsp;(1)</option> <option class="level-1" value="6">&nbsp;&nbsp;&nbsp;Moose&nbsp;&nbsp;(1)</option> <option class="level-1" value="11">&nbsp;&nbsp;&nbsp;Packages&nbsp;&nbsp;(1)</option> <option class="level-1" value="16">&nbsp;&nbsp;&nbsp;References&nbsp;&nbsp;(2)</option> <option class="level-1" value="13">&nbsp;&nbsp;&nbsp;Regular Expressions&nbsp;&nbsp;(1)</option> <option class="level-1" value="14">&nbsp;&nbsp;&nbsp;Testing&nbsp;&nbsp;(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 &nbsp;(1)</option> <option value='https://www.intermediateperl.com/2018/03/'> March 2018 &nbsp;(1)</option> <option value='https://www.intermediateperl.com/2018/01/'> January 2018 &nbsp;(1)</option> <option value='https://www.intermediateperl.com/2017/08/'> August 2017 &nbsp;(1)</option> <option value='https://www.intermediateperl.com/2017/05/'> May 2017 &nbsp;(1)</option> <option value='https://www.intermediateperl.com/2016/11/'> November 2016 &nbsp;(2)</option> <option value='https://www.intermediateperl.com/2016/06/'> June 2016 &nbsp;(1)</option> <option value='https://www.intermediateperl.com/2015/06/'> June 2015 &nbsp;(1)</option> <option value='https://www.intermediateperl.com/2015/04/'> April 2015 &nbsp;(1)</option> <option value='https://www.intermediateperl.com/2013/06/'> June 2013 &nbsp;(2)</option> <option value='https://www.intermediateperl.com/2012/10/'> October 2012 &nbsp;(1)</option> <option value='https://www.intermediateperl.com/2012/08/'> August 2012 &nbsp;(2)</option> <option value='https://www.intermediateperl.com/2012/07/'> July 2012 &nbsp;(2)</option> <option value='https://www.intermediateperl.com/2012/05/'> May 2012 &nbsp;(3)</option> <option value='https://www.intermediateperl.com/2012/04/'> April 2012 &nbsp;(1)</option> <option value='https://www.intermediateperl.com/2012/03/'> March 2012 &nbsp;(1)</option> <option value='https://www.intermediateperl.com/2012/01/'> January 2012 &nbsp;(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>

Pages: 1 2 3 4 5 6 7 8 9 10