CINXE.COM
The Perl Review – Helping you make Perl useful, effective, and valuable
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><![endif]--> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"/> <link rel="profile" href="https://gmpg.org/xfn/11" /> <link rel="pingback" href="https://www.theperlreview.com/xmlrpc.php" /> <title>The Perl Review – Helping you make Perl useful, effective, and valuable</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 rel="alternate" type="application/rss+xml" title="The Perl Review » Feed" href="https://www.theperlreview.com/feed/" /> <link rel="alternate" type="application/rss+xml" title="The Perl Review » Comments Feed" href="https://www.theperlreview.com/comments/feed/" /> <script type="text/javascript"> 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.theperlreview.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=5.9.3"}}; /*! This file is auto-generated */ !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 type="text/css"> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 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.theperlreview.com/wp-includes/css/dist/block-library/style.min.css?ver=5.9.3' type='text/css' media='all' /> <style id='global-styles-inline-css' type='text/css'> body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--duotone--dark-grayscale: url('#wp-duotone-dark-grayscale');--wp--preset--duotone--grayscale: url('#wp-duotone-grayscale');--wp--preset--duotone--purple-yellow: url('#wp-duotone-purple-yellow');--wp--preset--duotone--blue-red: url('#wp-duotone-blue-red');--wp--preset--duotone--midnight: url('#wp-duotone-midnight');--wp--preset--duotone--magenta-yellow: url('#wp-duotone-magenta-yellow');--wp--preset--duotone--purple-green: url('#wp-duotone-purple-green');--wp--preset--duotone--blue-orange: url('#wp-duotone-blue-orange');--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} </style> <link rel='stylesheet' id='contact-form-7-css' href='https://www.theperlreview.com/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=5.5.6' type='text/css' media='all' /> <link rel='stylesheet' id='complete-style-css' href='https://www.theperlreview.com/wp-content/themes/healing-touch-pro/style.css?ver=5.9.3' type='text/css' media='all' /> <link rel='stylesheet' id='complete-style-core-css' href='https://www.theperlreview.com/wp-content/themes/healing-touch-pro/style_core.css?ver=5.9.3' type='text/css' media='all' /> <link rel='stylesheet' id='complete-animated_css-css' href='https://www.theperlreview.com/wp-content/themes/healing-touch-pro/assets/css/animate.min.css?ver=5.9.3' type='text/css' media='all' /> <link rel='stylesheet' id='complete-static_css-css' href='https://www.theperlreview.com/wp-content/themes/healing-touch-pro/assets/css/nivo-slider.css?ver=5.9.3' type='text/css' media='all' /> <link rel='stylesheet' id='complete-gallery_css-css' href='https://www.theperlreview.com/wp-content/themes/healing-touch-pro/assets/css/prettyPhoto.css?ver=5.9.3' type='text/css' media='all' /> <link rel='stylesheet' id='complete-awesome_css-css' href='https://www.theperlreview.com/wp-content/themes/healing-touch-pro/assets/fonts/font-awesome.css?ver=5.9.3' type='text/css' media='all' /> <link rel='stylesheet' id='complete_google_fonts-css' href='//fonts.googleapis.com/css?family=Assistant%3Aregular%2C800%2C700%2C600%2C500%2C300%2C200%7COswald%3Aregular%2C700%2C600%2C500%2C300%2C200%7CPlayfair+Display%3Aregular%2Citalic%2C900%2C800%2C700%2C600%2C500%26subset%3Dlatin%2C' type='text/css' media='screen' /> <script type='text/javascript' src='https://www.theperlreview.com/wp-includes/js/jquery/jquery.min.js?ver=3.6.0' id='jquery-core-js'></script> <script type='text/javascript' src='https://www.theperlreview.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.3.2' id='jquery-migrate-js'></script> <script type='text/javascript' src='https://www.theperlreview.com/wp-content/themes/healing-touch-pro/assets/js/complete.js?ver=1' id='complete_js-js'></script> <script type='text/javascript' src='https://www.theperlreview.com/wp-content/themes/healing-touch-pro/assets/js/other.js?ver=1' id='complete_otherjs-js'></script> <script type='text/javascript' src='https://www.theperlreview.com/wp-content/themes/healing-touch-pro/assets/js/jquery.bxslider.min.js?ver=1' id='complete_testimonialjs-js'></script> <script type='text/javascript' src='https://www.theperlreview.com/wp-content/themes/healing-touch-pro/assets/js/jquery.quicksand.js?ver=1' id='complete_galjs1-js'></script> <script type='text/javascript' src='https://www.theperlreview.com/wp-content/themes/healing-touch-pro/assets/js/script.js?ver=1' id='complete_galjs3-js'></script> <script type='text/javascript' src='https://www.theperlreview.com/wp-content/themes/healing-touch-pro/assets/js/counterup.min.js?ver=1' id='complete_count-js'></script> <script type='text/javascript' src='https://www.theperlreview.com/wp-content/themes/healing-touch-pro/assets/js/verticalslider.js?ver=1' id='complete_verticalslider-js'></script> <script type='text/javascript' src='https://www.theperlreview.com/wp-content/themes/healing-touch-pro/assets/js/jquery.prettyPhoto.js?ver=1' id='complete_galjs4-js'></script> <link rel="https://api.w.org/" href="https://www.theperlreview.com/wp-json/" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.theperlreview.com/xmlrpc.php?rsd" /> <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="https://www.theperlreview.com/wp-includes/wlwmanifest.xml" /> <meta name="generator" content="WordPress 5.9.3" /> <style type="text/css"> /*Fixed Background*/ /*BOXED LAYOUT*/ .site_boxed .layer_wrapper, body.home.site_boxed #slidera {width: 83.5%;float: left;margin: 0 8.25%; background: #ffffff;} .site_boxed .stat_bg, .site_boxed .stat_bg_overlay{width: 83.5%;} .site_boxed .social_buttons{background: #ffffff;} .site_boxed .center {width: 95%!important;margin: 0 auto;} .site_boxed .head_top .center{ width:95%!important;} /*Site Content Text Style*/ body, button, input, select, textarea{ font-family:Assistant; font-size:16px; } .footer-post-area ul li h4, .footer-post-area ul li h4 a{font-family:Assistant;} .single_post .single_post_content .tabs li a:link, .single_post .single_post_content .tabs li a:visited{ color:#2b2b2b;} /*Feattured Boxes Section*/ .featured_area_bg{background:url();} .featured_area{background-color:#f2f2f2;} .featured_block img{height:70px;; width:70px;} .featured_block{background-color:#ffffff;} .sktmore, .newsletter-form input[type="submit"]{background-color:#207fdc;} .sktmore:hover, .newsletter-form input[type="submit"]:hover{background-color:#393939;} .left-fit-title h3, .right-fit-title h3, .left-fit-desc, .right-fit-desc{color:#ffffff;} .left-fitright, .right-fitleft{background-color:#ffffff;} .left-fitbox a:hover h3, .right-fitbox a:hover h3{color:#d4d4d4;} .left-fitbox a:hover .left-fitright, .right-fitbox a:hover .right-fitleft{background-color:#d4d4d4;} .right-fitleft, .left-fitright{color:#000000;} .right-fit-desc, .left-fit-desc{border-bottom-color:#30a0fd;} .expanding-grid .spacer{background-color:#207fdc;} .expand-left h2, .expand-left{color:#000000;} .headingseperator h3{color:#000000;} .headingseperator h3::after{border-bottom-color:#207fdc;} .expanding-grid .links > li a.active:after{border-bottom-color:#207fdc;} .squarebox{background-color:#ffffff;} .squarebox:hover{background-color:#79ab9f;} .squaretitle{color:#000000;} .perfectbox{background-color:#ffffff; border-color:#ffffff;} .perfectborder:hover, .perfectbox:hover{border-color:#207fdc !important;} .post_block_style3{background-color:#ffffff; border-color:#eaeaea;} .post_block_style3:before{background:#9f9f9f;} /*-----------------------------COLORS------------------------------------*/ /*Header Color*/ .header{background-color: rgba(255,255,255, 1);} /*Head Top Bar Color*/ .head-info-area{background-color: rgba(40,40,40, 1);} @media screen and (max-width: 767px){ .home.has_trans_header .header{background:#ffffff!important;} } /*LOGO*/ .logo img{height:0; width:0; margin-top:0;} .logo h2, .logo h1, .logo h2 a:link, .logo h2 a:visited, .logo h1 a:link, .logo h1 a:visited, .logo h2 a:hover, .logo h1 a:hover{ font-family:'Assistant'; font-size:40px; color:#282828; } /*HEADER TEXT BAR*/ .head-info-area, .head-info-area a:link, .head-info-area a:visited{ font-family:'Assistant'; font-size:16px; color:#ffffff; } .head-info-area a:hover{ color:#edecec; } a{color:#207fdc;} a:hover{color:#685031;} /*Slider Title*/ .title{ font-family:'Oswald'; font-size:82px; color:#ffffff; } .slidedesc{ font-family:'Assistant'; font-size:20px; color:#282828; } .slidebtn{ font-family:'Assistant'; font-size:15px;; } .slider-main .nivo-caption .slidebtn a{ color:#fff; background-color:#207fdc; } .slider-main .nivo-caption .slidebtn a:hover{background-color:#282828; color:#ffffff;} .nivo-controlNav a{background-color:#207fdc} .nivo-controlNav a.active{background-color:#fea916} .skt-slider-wave .skt-builder-wave-color{fill: #ffffff;} /* Global H1 */ h1{ font-family:'Assistant'; font-size:32px; color:#282828; } h1 a:hover{ color:#207fdc; } /* Global H2 */ h2{ font-family:'Playfair Display'; font-size:28px; color:#282828; } h2 a:hover{ color:#207fdc; } /* Global H3 */ h3{ font-family:'Assistant'; font-size:24px; color:#282828; } h3 a:hover{ color:#207fdc; } /* Global H4 */ h4{ font-family:'Assistant'; font-size:13px; color:#282828; } h4 a:hover{ color:#207fdc; } /* Global H5 */ h5{ font-family:'Assistant'; font-size:11px; color:#282828; } h5 a:hover{ color:#207fdc; } /* Global H6 */ h6{ font-family:'Assistant'; font-size:9px; color:#282828; } h6 a:hover{ color:#207fdc; } /* Post Meta Color */ .post_block_style1_meta, .post_block_style1_meta a:link, .post_block_style1_meta a:visited, .post_block_style2_meta, .post_block_style2_meta a:link, .post_block_style2_meta a:visited, .single_metainfo, .single_metainfo a:link, .single_metainfo a:visited{ color:#282828; } /* Team Box Background Color */ .team-infobox{ background-color:#f7f7f7; } /* Social Icon Background Color */ .social-icons a:link, .social-icons a:visited{ background-color:#151515; color:#a6a6a6; } /* Social Icon Hover Background Color */ .social-icons a:hover{ background-color:#ffffff; color:#151515; border-color:#ffffff; } /* Teambox Background Color */ .testimonial-box{ background-color:#ffffff; } .testimonial-box:after{ border-top-color:#ffffff; } .testimonilacontent, .bxslider li h3, .bxslider li p{color:#4d4d4d;} .bxslider li{background-color:#ffffff; border-color:#e8e7e7;} .testimonilacontent::after{border-bottom-color:#e8e7e7;} /* Pager Color */ .bx-wrapper .bx-pager.bx-default-pager a:link, .bx-wrapper .bx-pager.bx-default-pager a:visited{ background:#000000; } /* Pager Active Color */ .bx-wrapper .bx-pager.bx-default-pager a:hover, .bx-wrapper .bx-pager.bx-default-pager a.active{ background:#207fdc; } /* Gallery Filter Active Bgcolor */ .portfolio-categ li a:link, .portfolio-categ li a:visited{ color:#909090; } /* Gallery Filter Active Bgcolor */ .portfolio-categ li.active a:link, .portfolio-categ li.active a:visited{ color:#f1b500; } .portfolio-content .portfolio-area li .image-block-title{background-color: rgba(241,181,0, 0.7); color:#fff;} /* Skills Bar Background Color */ .skill-bg{ background-color:#f8f8f8; } /* Skills Bar Text Color */ .skillbar-title{ color:#ffffff; } #simple-menu{color:#282828;} body.home.has_trans_header #simple-menu{color:#fff;} span.desc{color:#282828;} .header-extras li a, .header-extras li .header-search-toggle{color:#282828;} .header-extras li a:hover, .header-extras li .header-search-toggle:hover{color: #207fdc;} .header-extras li .custom-cart-count{background-color: #207fdc; color:#282828;} /*MENU Text Color*/ #topmenu ul li a{color:#282828;} #topmenu ul li.menu_hover a:link, #topmenu ul li.menu_hover a:visited{border-color:#207fdc;} #topmenu ul li.menu_hover>a:link, #topmenu ul li.menu_hover>a:visited, body.has_trans_header.home #topmenu ul li.menu_hover>a:link, body.has_trans_header.home #topmenu ul li.menu_hover>a:visited{color:#207fdc;} #topmenu ul li.current-menu-item>a:link, #topmenu ul li.current-menu-item>a:visited, #topmenu ul li.current-menu-parent>a:link, #topmenu ul li.current_page_parent>a:visited, #topmenu ul li.current-menu-ancestor>a:link, #topmenu ul li.current-menu-ancestor>a:visited{color:#207fdc;} #topmenu ul li ul{border-color:#207fdc transparent transparent transparent;} #topmenu ul.menu>li:hover:after{background-color:#207fdc;} #topmenu ul li ul li a:hover{color:#207fdc;} #topmenu ul li.appointment-btn a{background-color: #207fdc; color: #fff !important;} #topmenu ul li.appointment-btn a:hover{background-color: #282828; color: #fff !important;} #topmenu ul li.current-menu-item > a:link:after, #topmenu ul li.current-menu-item > a:visited:after, #topmenu ul li.current-menu-parent > a:link:after, #topmenu ul li.current_page_parent > a:visited:after, #topmenu ul li.current-menu-ancestor > a:link:after, #topmenu ul li.current-menu-ancestor > a:visited:after{content:''; border-bottom-color:#207fdc !important;} #topmenu ul.menu ul li{background-color:#ffffff;} #topmenu ul.sub-menu li a, #topmenu ul.children li a{color:#282828;} #topmenu ul.sub-menu li a:hover, #topmenu ul.children li a:hover, #topmenu li.menu_highlight_slim:hover, #topmenu ul.sub-menu li.current_page_item a, #topmenu ul.children li.current_page_item a, #topmenu ul.sub-menu li.current-menu-item a, #topmenu ul.children li.current-menu-item a{background-color:#282828 !important;} .sidr{ background-color:#282828;} .pad_menutitle{ background-color:#207fdc;} .sidr ul li a, .sidr ul li span, .sidr ul li ul li a, .sidr ul li ul li span{color:#ffffff;} .sidr ul li.sidr-class-current-menu-item > a{color:#207fdc;} #simple-menu .fa-bars{color:#207fdc !important;} .pad_menutitle .fa-bars, .pad_menutitle .fa-times{color:#ffffff !important;} .head_soc .social_bookmarks a:link, .head_soc .social_bookmarks a:visited{color:#282828;} .head_soc .social_bookmarks.bookmark_hexagon a:before {border-bottom-color: rgba(40,40,40, 0.3)!important;} .head_soc .social_bookmarks.bookmark_hexagon a i {background:rgba(40,40,40, 0.3)!important;} .head_soc .social_bookmarks.bookmark_hexagon a:after { border-top-color:rgba(40,40,40, 0.3)!important;} /*BASE Color*/ .widget_border, .heading_border, #wp-calendar #today, .thn_post_wrap .more-link:hover, .moretag:hover, .search_term #searchsubmit, .error_msg #searchsubmit, #searchsubmit, .complete_pagenav a:hover, .nav-box a:hover .left_arro, .nav-box a:hover .right_arro, .pace .pace-progress, .homeposts_title .menu_border, span.widget_border, .ast_login_widget #loginform #wp-submit, .prog_wrap, .lts_layout1 a.image, .lts_layout2 a.image, .lts_layout3 a.image, .rel_tab:hover .related_img, .wpcf7-submit, .woo-slider #post_slider li.sale .woo_sale, .nivoinner .slide_button_wrap .lts_button, #accordion .slide_button_wrap .lts_button, .img_hover, p.form-submit #submit, .optimposts .type-product a.button.add_to_cart_button{background:#207fdc;} .share_active, .comm_auth a, .logged-in-as a, .citeping a, .lay3 h2 a:hover, .lay4 h2 a:hover, .lay5 .postitle a:hover, .nivo-caption p a, .acord_text p a, .org_comment a, .org_ping a, .contact_submit input:hover, .widget_calendar td a, .ast_biotxt a, .ast_bio .ast_biotxt h3, .lts_layout2 .listing-item h2 a:hover, .lts_layout3 .listing-item h2 a:hover, .lts_layout4 .listing-item h2 a:hover, .lts_layout5 .listing-item h2 a:hover, .rel_tab:hover .rel_hover, .post-password-form input[type~=submit], .bio_head h3, .blog_mo a:hover, .ast_navigation a:hover, .lts_layout4 .blog_mo a:hover{color:#207fdc;} #home_widgets .widget .thn_wgt_tt, #sidebar .widget .thn_wgt_tt, #footer .widget .thn_wgt_tt, .astwt_iframe a, .ast_bio .ast_biotxt h3, .ast_bio .ast_biotxt a, .nav-box a span, .lay2 h2.postitle:hover a{color:#207fdc;} .pace .pace-activity{border-top-color: #207fdc!important;border-left-color: #207fdc!important;} .pace .pace-progress-inner{box-shadow: 0 0 10px #207fdc, 0 0 5px #207fdc; -webkit-box-shadow: 0 0 10px #207fdc, 0 0 5px #207fdc; -moz-box-shadow: 0 0 10px #207fdc, 0 0 5px #207fdc;} .fotorama__thumb-border, .ast_navigation a:hover{ border-color:#207fdc!important;} /*Text Color on BASE COLOR Element*/ .icon_round a, #wp-calendar #today, .moretag:hover, .search_term #searchsubmit, .error_msg #searchsubmit, .complete_pagenav a:hover, .ast_login_widget #loginform #wp-submit, #searchsubmit, .prog_wrap, .rel_tab .related_img i, .lay1 h2.postitle a, .nivoinner .slide_button_wrap .lts_button, #accordion .slide_button_wrap .lts_button, .lts_layout1 .icon_wrap a, .lts_layout2 .icon_wrap a, .lts_layout3 .icon_wrap a, .lts_layout1 .icon_wrap a:hover{color:#ffffff;} .thn_post_wrap .listing-item .moretag:hover, body .lts_layout1 .listing-item .title, .lts_layout2 .img_wrap .complete_plus, .img_hover .icon_wrap a, body .thn_post_wrap .lts_layout1 .icon_wrap a, .wpcf7-submit, .woo-slider #post_slider li.sale .woo_sale, p.form-submit #submit, .optimposts .type-product a.button.add_to_cart_button{color:#ffffff;} /*Sidebar Widget Background Color */ #sidebar .widget{ background:#FFFFFF;} #sidebar .widget_wrap{border-color:#eeeff5;} /*Widget Title Color */ #sidebar .widget-title, #sidebar .widget-title a{color:#666666;} #sidebar #sidebar .widget, #sidebar .widget .widget_wrap{ color:#999999;} #sidebar .widget .widgettitle, #sidebar .widget .widgettitle a:link, #sidebar .widget .widgettitle a:visited{font-size:16px;} #sidebar .widget li a, #sidebar .widget a{ color:#207fdc;} #sidebar .widget li a:hover, #sidebar .widget a:hover{ color:#999999;} .flipcard .front{background-color:#ffffff; border-color:#e0e0e0;} .flipcard .back{background-color:#f7f7f7; border-color:#000000;} .divider5 span, .divider6 span{background-color:#8c8b8b;} .divider1, .divider2, .divider3, .divider4, .divider5, .divider6, .fusion-title .title-sep, .fusion-title.sep-underline, .product .product-border, .fusion-title .title-sep{border-color:#8c8b8b;} .timeline-both-side li .timeline-description{background-color:#ffffff;} .timeline-both-side:before, .timeline-both-side li .border-line, .timeline-both-side li .border-line:before{background-color:#dedede;} .timeline-both-side:after, .timeline-both-side li .timeline-description{border-color:#dedede;} .griditem{background-color:#ffffff;} .griditem{border-color:#cccccc;} .serviceboxbg{background:rgba(32,127,220, 0.8); border-right-color:#30a0fd;} .serviceboxbg:hover{background-color:#685031;} .servicebox h3, .serviceboxbg p{color:#ffffff !important;} .sktgo, .sktgo:hover{background-color:#ffffff;} #footer .footercols1 h3, #footer .footercols2 h3, #footer .footercols3 h3, #footer .footercols4 h3{color:#ffffff;} #footer .footercols1 h3::after, #footer .footercols2 h3::after, #footer .footercols3 h3::after, #footer .footercols4 h3::after{background-color: #fff;} .footer-infobox .center{border-color: #435f8e;} .footmenu li a, .footer-blog-posts ul li a{color: #a6a6a6;} .footmenu li a:hover, .footer-blog-posts ul li a:hover, .footmenu li.current-menu-item a, .footmenu li.current_page_item a{color: #ffffff;} /*FOOTER WIDGET COLORS*/ #footer{background-color: #202020; background-image: url();} #footer .footercols1, #footer .footercols2, #footer .footercols3, #footer .footercols4, .footer-post-area ul li h4, .footer-post-area ul li h4 a:link, .footer-post-area ul li h4 a:visited{color:#d9d9d9;} /*COPYRIGHT COLORS*/ #copyright{background-color: #151515;} .copytext, .copytext a:link, .copytext a:visited{color: #a6a6a6;} .foot_soc .social_bookmarks a:link, .foot_soc .social_bookmarks a:visited{color:#a6a6a6;} .foot_soc .social_bookmarks.bookmark_hexagon a:before {border-bottom-color: rgba(166,166,166, 0.3);} .foot_soc .social_bookmarks.bookmark_hexagon a i {background:rgba(166,166,166, 0.3);} .foot_soc .social_bookmarks.bookmark_hexagon a:after { border-top-color:rgba(166,166,166, 0.3);} /*-------------------------------------TYPOGRAPHY--------------------------------------*/ /*Post Titles and headings Font*/ .postitle, .product_title{ font-family:Assistant;} /*Menu Font*/ #topmenu ul li a{ font-family:Assistant;} #topmenu ul li a{font-size:17px;} #topmenu ul li {line-height: 17px;} /*Body Text Color*/ body, .home_cat a, .contact_submit input, .comment-form-comment textarea{ color:#2b2b2b;} .single_post_content .tabs li a{ color:#2b2b2b;} .thn_post_wrap .listing-item .moretag{ color:#2b2b2b;} /*Post Title */ .postitle, .postitle a, .nav-box a, h3#comments, h3#comments_ping, .comment-reply-title, .related_h3, .nocomments, .lts_layout2 .listing-item h2 a, .lts_layout3 .listing-item h2 a, .lts_layout4 .listing-item h2 a, .author_inner h5, .product_title, .woocommerce-tabs h2, .related.products h2, .optimposts .type-product h2.postitle a, .woocommerce ul.products li.product h3{ text-decoration:none; color:#666666;} /*Woocommerce*/ .optimposts .type-product a.button.add_to_cart_button:hover{background-color:#ffffff;color:#207fdc;} .optimposts .lay2_wrap .type-product span.price, .optimposts .lay3_wrap .type-product span.price, .optimposts .lay4_wrap .type-product span.price, .optimposts .lay4_wrap .type-product a.button.add_to_cart_button{color:#666666;} .optimposts .lay2_wrap .type-product a.button.add_to_cart_button:before, .optimposts .lay3_wrap .type-product a.button.add_to_cart_button:before{color:#666666;} .optimposts .lay2_wrap .type-product a.button.add_to_cart_button:hover:before, .optimposts .lay3_wrap .type-product a.button.add_to_cart_button:hover:before, .optimposts .lay4_wrap .type-product h2.postitle a{color:#207fdc;} .page-template-templatespage-blog_template-php .lay4 .post_content{width:100%;} @media screen and (max-width: 480px){ body.home.has_trans_header .header .logo h1 a:link, body.home.has_trans_header .header .logo h1 a:visited{ color:#282828!important;} body.home.has_trans_header .header #simple-menu{color:#282828!important;} } /*USER'S CUSTOM CSS---------------------------------------------------------*/ span.desc{display: none;}/*---------------------------------------------------------*/ </style> <!--[if IE]> <style type="text/css"> .text_block_wrap, .home .lay1, .home .lay2, .home .lay3, .home .lay4, .home .lay5, .home_testi .looper, #footer .widgets{opacity:1!important;} #topmenu ul li a{display: block;padding: 20px; background:url(#);} </style> <![endif]--> <style type="text/css">.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style></head> <body class="home blog site_full elementor-default elementor-kit-89"> <!--HEADER--> <div class="header_wrap layer_wrapper"> <!--HEADER STARTS--> <div class="header type2"> <div class="center"> <div class="head_inner"> <!--LOGO START--> <div class="logo"> <h1><a href="https://www.theperlreview.com/"> The Perl Review </a></h1> <span class="desc">Helping you make Perl useful, effective, and valuable</span> </div> <!--LOGO END--> <div class="header-content-right"> <!--MENU START--> <!--MOBILE MENU START--> <a id="simple-menu" href="#sidr"><i class="fa-bars"></i></a> <!--MOBILE MENU END--> <div id="topmenu" class=""> <div class="menu"><ul> <li class="page_item page-item-11"><a href="https://www.theperlreview.com/consulting/">Consulting</a></li> <li class="page_item page-item-70"><a href="https://www.theperlreview.com/get-a-quote/">Get a Quote</a></li> <li class="page_item page-item-62"><a href="https://www.theperlreview.com/writing/">Writing</a></li> <li class="page_item page-item-2 page_item_has_children"><a href="https://www.theperlreview.com/training/">Training</a> <ul class='children'> <li class="page_item page-item-23"><a href="https://www.theperlreview.com/training/learning-perl/">Learning Perl</a></li> <li class="page_item page-item-26"><a href="https://www.theperlreview.com/training/intermediate-perl/">Intermediate Perl</a></li> <li class="page_item page-item-28"><a href="https://www.theperlreview.com/training/mastering-perl/">Mastering Perl</a></li> <li class="page_item page-item-30"><a href="https://www.theperlreview.com/training/effective-perl-programming/">Effective Perl Programming</a></li> <li class="page_item page-item-32"><a href="https://www.theperlreview.com/training/perl-unicode/">Perl & Unicode</a></li> <li class="page_item page-item-34"><a href="https://www.theperlreview.com/training/perl-testing/">Perl Testing</a></li> <li class="page_item page-item-36"><a href="https://www.theperlreview.com/training/custom-courses/">Custom courses</a></li> </ul> </li> <li class="page_item page-item-7"><a href="https://www.theperlreview.com/code-review/">Code Review</a></li> <li class="page_item page-item-9"><a href="https://www.theperlreview.com/testing/">Testing</a></li> <li class="page_item page-item-13"><a href="https://www.theperlreview.com/hr-support/">HR Support</a></li> </ul></div> </div> <!--MENU END--> </div> <div class="header-call-us-btn"></div> </div> </div> </div> <!--HEADER ENDS--></div><!--layer_wrapper class END--> <!--Slider START--> <div class="slider-header-layout2"> <div id="slidera" class="layer_wrapper "> <script> (function(e) { var t = function(t, n) { var r = e.extend({}, e.fn.nivoSlider.defaults, n); var i = { currentSlide: 0, currentImage: "", totalSlides: 0, running: false, paused: false, stop: false, controlNavEl: false }; var s = e(t); s.data("nivo:vars", i).addClass("nivoSlider"); var o = s.children(); o.each(function() { var t = e(this); var n = ""; if (!t.is("img")) { if (t.is("a")) { t.addClass("nivo-imageLink"); n = t } t = t.find("img:first") } var r = r === 0 ? t.attr("width") : t.width(), s = s === 0 ? t.attr("height") : t.height(); if (n !== "") { n.css("display", "none") } t.css("display", "none"); i.totalSlides++ }); if (r.randomStart) { r.startSlide = Math.floor(Math.random() * i.totalSlides) } if (r.startSlide > 0) { if (r.startSlide >= i.totalSlides) { r.startSlide = i.totalSlides - 1 } i.currentSlide = r.startSlide } if (e(o[i.currentSlide]).is("img")) { i.currentImage = e(o[i.currentSlide]) } else { i.currentImage = e(o[i.currentSlide]).find("img:first") } if (e(o[i.currentSlide]).is("a")) { e(o[i.currentSlide]).css("display", "block") } var u = e("<img/>").addClass("nivo-main-image"); u.attr("src", i.currentImage.attr("src")).show(); s.append(u); e(window).resize(function() { s.children("img").width(s.width()); u.attr("src", i.currentImage.attr("src")); u.stop().height("auto"); e(".nivo-slice").remove(); e(".nivo-box").remove() }); s.append(e('<div class="nivo-caption"></div>')); var a = function(t) { var n = e(".nivo-caption", s); if (i.currentImage.attr("title") != "" && i.currentImage.attr("title") != undefined) { var r = i.currentImage.attr("title"); if (r.substr(0, 1) == "#") r = e(r).html(); if (n.css("display") == "block") { setTimeout(function() { n.html(r) }, t.animSpeed) } else { n.html(r); n.stop().fadeIn(t.animSpeed) } } else { n.stop().fadeOut(t.animSpeed) } }; a(r); var f = 0; if (!r.manualAdvance && o.length > 1) { f = setInterval(function() { d(s, o, r, false) }, r.pauseTime) } if (r.directionNav) { s.append('<div class="nivo-directionNav"><a class="nivo-prevNav">' + r.prevText + '</a><a class="nivo-nextNav">' + r.nextText + "</a></div>"); e(s).on("click", "a.nivo-prevNav", function() { if (i.running) { return false } clearInterval(f); f = ""; i.currentSlide -= 2; d(s, o, r, "prev") }); e(s).on("click", "a.nivo-nextNav", function() { if (i.running) { return false } clearInterval(f); f = ""; d(s, o, r, "next") }) } if (r.controlNav) { i.controlNavEl = e('<div class="nivo-controlNav"></div>'); s.after(i.controlNavEl); for (var l = 0; l < o.length; l++) { if (r.controlNavThumbs) { i.controlNavEl.addClass("nivo-thumbs-enabled"); var c = o.eq(l); if (!c.is("img")) { c = c.find("img:first") } if (c.attr("data-thumb")) i.controlNavEl.append('<a class="nivo-control" rel="' + l + '"><img src="' + c.attr("data-thumb") + '" alt="" /></a>') } else { i.controlNavEl.append('<a class="nivo-control" rel="' + l + '">' + (l + 1) + "</a>") } } e("a:eq(" + i.currentSlide + ")", i.controlNavEl).addClass("active"); e("a", i.controlNavEl).bind("click", function() { if (i.running) return false; if (e(this).hasClass("active")) return false; clearInterval(f); f = ""; u.attr("src", i.currentImage.attr("src")); i.currentSlide = e(this).attr("rel") - 1; d(s, o, r, "control") }) } if (r.pauseOnHover) { s.hover(function() { i.paused = true; clearInterval(f); f = "" }, function() { i.paused = false; if (f === "" && !r.manualAdvance) { f = setInterval(function() { d(s, o, r, false) }, r.pauseTime) } }) } s.bind("nivo:animFinished", function() { u.attr("src", i.currentImage.attr("src")); i.running = false; e(o).each(function() { if (e(this).is("a")) { e(this).css("display", "none") } }); if (e(o[i.currentSlide]).is("a")) { e(o[i.currentSlide]).css("display", "block") } if (f === "" && !i.paused && !r.manualAdvance) { f = setInterval(function() { d(s, o, r, false) }, r.pauseTime) } r.afterChange.call(this) }); var h = function(t, n, r) { if (e(r.currentImage).parent().is("a")) e(r.currentImage).parent().css("display", "block"); e('img[src="' + r.currentImage.attr("src") + '"]', t).not(".nivo-main-image,.nivo-control img").width(t.width()).css("visibility", "hidden").show(); var i = e('img[src="' + r.currentImage.attr("src") + '"]', t).not(".nivo-main-image,.nivo-control img").parent().is("a") ? e('img[src="' + r.currentImage.attr("src") + '"]', t).not(".nivo-main-image,.nivo-control img").parent().height() : e('img[src="' + r.currentImage.attr("src") + '"]', t).not(".nivo-main-image,.nivo-control img").height(); for (var s = 0; s < n.slices; s++) { var o = Math.round(t.width() / n.slices); if (s === n.slices - 1) { t.append(e('<div class="nivo-slice" name="' + s + '"><img src="' + r.currentImage.attr("src") + '" style="position:absolute; width:' + t.width() + "px; height:auto; display:block !important; top:0; left:-" + (o + s * o - o) + 'px;" /></div>').css({ left: o * s + "px", width: t.width() - o * s + "px", height: i + "px", opacity: "0", overflow: "hidden" })) } else { t.append(e('<div class="nivo-slice" name="' + s + '"><img src="' + r.currentImage.attr("src") + '" style="position:absolute; width:' + t.width() + "px; height:auto; display:block !important; top:0; left:-" + (o + s * o - o) + 'px;" /></div>').css({ left: o * s + "px", width: o + "px", height: i + "px", opacity: "0", overflow: "hidden" })) } } e(".nivo-slice", t).height(i); u.stop().animate({ height: e(r.currentImage).height() }, n.animSpeed) }; var p = function(t, n, r) { if (e(r.currentImage).parent().is("a")) e(r.currentImage).parent().css("display", "block"); e('img[src="' + r.currentImage.attr("src") + '"]', t).not(".nivo-main-image,.nivo-control img").width(t.width()).css("visibility", "hidden").show(); var i = Math.round(t.width() / n.boxCols), s = Math.round(e('img[src="' + r.currentImage.attr("src") + '"]', t).not(".nivo-main-image,.nivo-control img").height() / n.boxRows); for (var o = 0; o < n.boxRows; o++) { for (var a = 0; a < n.boxCols; a++) { if (a === n.boxCols - 1) { t.append(e('<div class="nivo-box" name="' + a + '" rel="' + o + '"><img src="' + r.currentImage.attr("src") + '" style="position:absolute; width:' + t.width() + "px; height:auto; display:block; top:-" + s * o + "px; left:-" + i * a + 'px;" /></div>').css({ opacity: 0, left: i * a + "px", top: s * o + "px", width: t.width() - i * a + "px" })); e('.nivo-box[name="' + a + '"]', t).height(e('.nivo-box[name="' + a + '"] img', t).height() + "px") } else { t.append(e('<div class="nivo-box" name="' + a + '" rel="' + o + '"><img src="' + r.currentImage.attr("src") + '" style="position:absolute; width:' + t.width() + "px; height:auto; display:block; top:-" + s * o + "px; left:-" + i * a + 'px;" /></div>').css({ opacity: 0, left: i * a + "px", top: s * o + "px", width: i + "px" })); e('.nivo-box[name="' + a + '"]', t).height(e('.nivo-box[name="' + a + '"] img', t).height() + "px") } } } u.stop().animate({ height: e(r.currentImage).height() }, n.animSpeed) }; var d = function(t, n, r, i) { var s = t.data("nivo:vars"); if (s && s.currentSlide === s.totalSlides - 1) { r.lastSlide.call(this) } if ((!s || s.stop) && !i) { return false } r.beforeChange.call(this); if (!i) { u.attr("src", s.currentImage.attr("src")) } else { if (i === "prev") { u.attr("src", s.currentImage.attr("src")) } if (i === "next") { u.attr("src", s.currentImage.attr("src")) } } s.currentSlide++; if (s.currentSlide === s.totalSlides) { s.currentSlide = 0; r.slideshowEnd.call(this) } if (s.currentSlide < 0) { s.currentSlide = s.totalSlides - 1 } if (e(n[s.currentSlide]).is("img")) { s.currentImage = e(n[s.currentSlide]) } else { s.currentImage = e(n[s.currentSlide]).find("img:first") } if (r.controlNav) { e("a", s.controlNavEl).removeClass("active"); e("a:eq(" + s.currentSlide + ")", s.controlNavEl).addClass("active") } a(r); e(".nivo-slice", t).remove(); e(".nivo-box", t).remove(); var o = r.effect, f = ""; if (r.effect === "random") { f = new Array("sliceDownRight", "sliceDownLeft", "sliceUpRight", "sliceUpLeft", "sliceUpDown", "sliceUpDownLeft", "fold", "fade", "boxRandom", "boxRain", "boxRainReverse", "boxRainGrow", "boxRainGrowReverse"); o = f[Math.floor(Math.random() * (f.length + 1))]; if (o === undefined) { o = "fade" } } if (r.effect.indexOf(",") !== -1) { f = r.effect.split(","); o = f[Math.floor(Math.random() * f.length)]; if (o === undefined) { o = "fade" } } if (s.currentImage.attr("data-transition")) { o = s.currentImage.attr("data-transition") } s.running = true; var l = 0, c = 0, d = "", m = "", g = "", y = ""; if (o === "sliceDown" || o === "sliceDownRight" || o === "sliceDownLeft") { h(t, r, s); l = 0; c = 0; d = e(".nivo-slice", t); if (o === "sliceDownLeft") { d = e(".nivo-slice", t)._reverse() } d.each(function() { var n = e(this); n.css({ top: "0px" }); if (c === r.slices - 1) { setTimeout(function() { n.animate({ opacity: "1.0" }, r.animSpeed, "", function() { t.trigger("nivo:animFinished") }) }, 100 + l) } else { setTimeout(function() { n.animate({ opacity: "1.0" }, r.animSpeed) }, 100 + l) } l += 50; c++ }) } else if (o === "sliceUp" || o === "sliceUpRight" || o === "sliceUpLeft") { h(t, r, s); l = 0; c = 0; d = e(".nivo-slice", t); if (o === "sliceUpLeft") { d = e(".nivo-slice", t)._reverse() } d.each(function() { var n = e(this); n.css({ bottom: "0px" }); if (c === r.slices - 1) { setTimeout(function() { n.animate({ opacity: "1.0" }, r.animSpeed, "", function() { t.trigger("nivo:animFinished") }) }, 100 + l) } else { setTimeout(function() { n.animate({ opacity: "1.0" }, r.animSpeed) }, 100 + l) } l += 50; c++ }) } else if (o === "sliceUpDown" || o === "sliceUpDownRight" || o === "sliceUpDownLeft") { h(t, r, s); l = 0; c = 0; var b = 0; d = e(".nivo-slice", t); if (o === "sliceUpDownLeft") { d = e(".nivo-slice", t)._reverse() } d.each(function() { var n = e(this); if (c === 0) { n.css("top", "0px"); c++ } else { n.css("bottom", "0px"); c = 0 } if (b === r.slices - 1) { setTimeout(function() { n.animate({ opacity: "1.0" }, r.animSpeed, "", function() { t.trigger("nivo:animFinished") }) }, 100 + l) } else { setTimeout(function() { n.animate({ opacity: "1.0" }, r.animSpeed) }, 100 + l) } l += 50; b++ }) } else if (o === "fold") { h(t, r, s); l = 0; c = 0; e(".nivo-slice", t).each(function() { var n = e(this); var i = n.width(); n.css({ top: "0px", width: "0px" }); if (c === r.slices - 1) { setTimeout(function() { n.animate({ width: i, opacity: "1.0" }, r.animSpeed, "", function() { t.trigger("nivo:animFinished") }) }, 100 + l) } else { setTimeout(function() { n.animate({ width: i, opacity: "1.0" }, r.animSpeed) }, 100 + l) } l += 50; c++ }) } else if (o === "fade") { h(t, r, s); m = e(".nivo-slice:first", t); m.css({ width: t.width() + "px" }); m.animate({ opacity: "1.0" }, r.animSpeed * 2, "", function() { t.trigger("nivo:animFinished") }) } else if (o === "slideInRight") { h(t, r, s); m = e(".nivo-slice:first", t); m.css({ width: "0px", opacity: "1" }); m.animate({ width: t.width() + "px" }, r.animSpeed * 2, "", function() { t.trigger("nivo:animFinished") }) } else if (o === "slideInLeft") { h(t, r, s); m = e(".nivo-slice:first", t); m.css({ width: "0px", opacity: "1", left: "", right: "0px" }); m.animate({ width: t.width() + "px" }, r.animSpeed * 2, "", function() { m.css({ left: "0px", right: "" }); t.trigger("nivo:animFinished") }) } else if (o === "boxRandom") { p(t, r, s); g = r.boxCols * r.boxRows; c = 0; l = 0; y = v(e(".nivo-box", t)); y.each(function() { var n = e(this); if (c === g - 1) { setTimeout(function() { n.animate({ opacity: "1" }, r.animSpeed, "", function() { t.trigger("nivo:animFinished") }) }, 100 + l) } else { setTimeout(function() { n.animate({ opacity: "1" }, r.animSpeed) }, 100 + l) } l += 20; c++ }) } else if (o === "boxRain" || o === "boxRainReverse" || o === "boxRainGrow" || o === "boxRainGrowReverse") { p(t, r, s); g = r.boxCols * r.boxRows; c = 0; l = 0; var w = 0; var E = 0; var S = []; S[w] = []; y = e(".nivo-box", t); if (o === "boxRainReverse" || o === "boxRainGrowReverse") { y = e(".nivo-box", t)._reverse() } y.each(function() { S[w][E] = e(this); E++; if (E === r.boxCols) { w++; E = 0; S[w] = [] } }); for (var x = 0; x < r.boxCols * 2; x++) { var T = x; for (var N = 0; N < r.boxRows; N++) { if (T >= 0 && T < r.boxCols) { (function(n, i, s, u, a) { var f = e(S[n][i]); var l = f.width(); var c = f.height(); if (o === "boxRainGrow" || o === "boxRainGrowReverse") { f.width(0).height(0) } if (u === a - 1) { setTimeout(function() { f.animate({ opacity: "1", width: l, height: c }, r.animSpeed / 1.3, "", function() { t.trigger("nivo:animFinished") }) }, 100 + s) } else { setTimeout(function() { f.animate({ opacity: "1", width: l, height: c }, r.animSpeed / 1.3) }, 100 + s) } })(N, T, l, c, g); c++ } T-- } l += 100 } } }; var v = function(e) { for (var t, n, r = e.length; r; t = parseInt(Math.random() * r, 10), n = e[--r], e[r] = e[t], e[t] = n); return e }; var m = function(e) { if (this.console && typeof console.log !== "undefined") { console.log(e) } }; this.stop = function() { if (!e(t).data("nivo:vars").stop) { e(t).data("nivo:vars").stop = true; m("Stop Slider") } }; this.start = function() { if (e(t).data("nivo:vars").stop) { e(t).data("nivo:vars").stop = false; m("Start Slider") } }; r.afterLoad.call(this); return this }; e.fn.nivoSlider = function(n) { return this.each(function(r, i) { var s = e(this); if (s.data("nivoslider")) { return s.data("nivoslider") } var o = new t(this, n); s.data("nivoslider", o) }) }; e.fn.nivoSlider.defaults = { effect: "fade", slices: 15, boxCols: 8, boxRows: 4, animSpeed: 700, pauseTime: 4000, startSlide: 0, directionNav: false, controlNav: true, controlNavThumbs: false, pauseOnHover: true, manualAdvance: false, prevText: "Prev", nextText: "Next", randomStart: false, beforeChange: function() {}, afterChange: function() {}, slideshowEnd: function() {}, lastSlide: function() {}, afterLoad: function() {} }; e.fn._reverse = [].reverse })(jQuery); jQuery(window).load(function() { jQuery("#slider").nivoSlider() }); </script> <section id="home_slider"> <div class="slider-main"> <div class="slider-wrapper theme-default"> <div id="slider" class="nivoSlider"> <img src="https://www.theperlreview.com/wp-content/uploads/2022/05/books.jpg" data-thumb="https://www.theperlreview.com/wp-content/uploads/2022/05/books.jpg" alt="Writing" title="#htmlcaption1" /> <img src="https://www.theperlreview.com/wp-content/uploads/2022/05/crowd.jpg" data-thumb="https://www.theperlreview.com/wp-content/uploads/2022/05/crowd.jpg" alt="Training" title="#htmlcaption2" /> <img src="https://www.theperlreview.com/wp-content/uploads/2022/05/testing.jpg" data-thumb="https://www.theperlreview.com/wp-content/uploads/2022/05/testing.jpg" alt="Testing" title="#htmlcaption3" /> </div> <div id="htmlcaption1" class="nivo-html-caption"> <div class="nivo-caption-content"> <div class="title">Writing</div> </div> </div> <div id="htmlcaption2" class="nivo-html-caption"> <div class="nivo-caption-content"> <div class="title">Training</div> </div> </div> <div id="htmlcaption3" class="nivo-html-caption"> <div class="nivo-caption-content"> <div class="title">Testing</div> </div> </div> </div> </div> </section> </div> </div> <!--Slider END--><div class="fixed_site"> <div class="fixed_wrap fixindex"> <div class="lay4"> <div class="center"> <div class="lay4_wrap"> <div class="lay4_inner"> </div><!--lay4_inner class END--> <!--PAGINATION START--> <div class="ast_pagenav"> </div> <!--PAGINATION END--> </div><!--lay4_wrap class END--> <!--SIDEBAR START--> <div id="sidebar"> <div class="widgets"> <div class="widget"> <div class="widget_wrap"> <h3 class="widget-title"> Category </h3> <span class="widget_border"></span> <ul> <li class="cat-item-none">No categories</li> </ul> </div> </div> <div class="widget"> <div class="widget_wrap"> <h3 class="widget-title"> Archives </h3> <span class="widget_border"></span> <ul> </ul> </div> </div> </div> </div> <!--SIDEBAR END--> </div><!--center class END--> </div><!--lay4 class END--> <div class="clear"></div> </div> </div> <a class="to_top "><i class="fa-angle-up fa-2x"></i></a> <!--Footer Start--> <div class="footer_wrap layer_wrapper "> <div id="footer" class="footer-type4"> <div class="center"> <div class="rowfooter"> <div class="clear"></div> <div class="footercols4"><h3>The Perl Review</h3><p>We help people make the most out of Perl through education, consulting, and writing.</p></div> <div class="footercols4"><h3>Services</h3><p><div class="footmenu"><ul> <li class="page_item page-item-11"><a href="https://www.theperlreview.com/consulting/">Consulting</a></li> <li class="page_item page-item-70"><a href="https://www.theperlreview.com/get-a-quote/">Get a Quote</a></li> <li class="page_item page-item-62"><a href="https://www.theperlreview.com/writing/">Writing</a></li> <li class="page_item page-item-2 page_item_has_children"><a href="https://www.theperlreview.com/training/">Training</a></li> <li class="page_item page-item-7"><a href="https://www.theperlreview.com/code-review/">Code Review</a></li> <li class="page_item page-item-9"><a href="https://www.theperlreview.com/testing/">Testing</a></li> <li class="page_item page-item-13"><a href="https://www.theperlreview.com/hr-support/">HR Support</a></li> </ul></div> </p> </div> <div class="footercols4"><h3>Contact</h3><p>603 W 115th St #197, New York, NY 10025<br /><div class="spacecode" style="height:10px;"></div></p><p style="margin-bottom: 10px"><span style="color: #fff;font-weight: bold;margin-right: 30px">Phone:</span> 1.312.492.4513</p><p style="margin-bottom: 10px"><span style="color: #fff;font-weight: bold;margin-right: 34px">E-mail:</span><a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="e38a8d858ca3978b869386918f9186958a8694cd808c8e">[email protected]</a></p><p style="margin-bottom: 10px"><span style="color: #fff;font-weight: bold;margin-right: 23px">Website:</span>https://www.theperlreview.com</p></div> <div class="footercols4"><h3></h3></div> </div> <div class="clear"></div> </div> </div> <div id="copyright"> <div class="center"> <div class="copytext">© Copyright 2019. Healing Touch. All Rights Reserved by SKT Themes</div> </div> </div> <!--Footer END--> </div><!--layer_wrapper class END--> <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script type="text/javascript"> jQuery(window).load(function() { //STATIC SLIDER IMAGE FIXED var statimgheight = jQuery(".stat_has_img img").height(); var hheight = jQuery(".header").height(); jQuery('.stat_bg').css({"background-position-y":hheight+"px", "top":hheight+"px"}); jQuery('.stat_bg_overlay').css({ "top":hheight+"px"}); }); jQuery(window).on('scroll', function() { var scrollTop = jQuery(this).scrollTop(); var hheight = jQuery(".header").height(); if ( !scrollTop ) { jQuery('.stat_bg').css({"background-position-y":hheight+"px"}); }else{ jQuery('.stat_bg').css({"background-position-y":"0px"}); } }); </script> <script type='text/javascript' src='https://www.theperlreview.com/wp-includes/js/dist/vendor/regenerator-runtime.min.js?ver=0.13.9' id='regenerator-runtime-js'></script> <script type='text/javascript' src='https://www.theperlreview.com/wp-includes/js/dist/vendor/wp-polyfill.min.js?ver=3.15.0' id='wp-polyfill-js'></script> <script type='text/javascript' id='contact-form-7-js-extra'> /* <![CDATA[ */ var wpcf7 = {"api":{"root":"https:\/\/www.theperlreview.com\/wp-json\/","namespace":"contact-form-7\/v1"}}; /* ]]> */ </script> <script type='text/javascript' src='https://www.theperlreview.com/wp-content/plugins/contact-form-7/includes/js/index.js?ver=5.5.6' id='contact-form-7-js'></script> <script type='text/javascript' src='https://www.theperlreview.com/wp-includes/js/hoverIntent.min.js?ver=1.10.2' id='hoverIntent-js'></script> </body> </html>