2 <html lang="en-us" itemscope itemtype="http://schema.org/Article">
5 <meta name="description" content="OK, I'm a nerd and I'm pretty passionate about Perl. But in my defense this is my business and my chosen career - it is what I went to school for way back in the day. So I listen to...">
6 <meta name="generator" content="Movable Type 5.2.3">
7 <title>Perl::Critic - Status</title>
8 <link rel="alternate" type="application/atom+xml" title="Recent Entries" href="http://defaria.com/blogs/Status/atom.xml">
9 <link rel="canonical" href="http://defaria.com/blogs/Status/2012/04/perlcritic-1.html">
10 <meta name="viewport" content="width=device-width,initial-scale=1">
11 <link rel="stylesheet" href="http://defaria.com/blogs/Status/styles.css">
13 <link rel="stylesheet" href="http://defaria.com/blogs/Status/styles_ie.css">
14 <script src="/mt/mt-static/support/theme_static/rainier/js/html5shiv.js"></script>
17 <link rel="start" href="http://defaria.com/blogs/Status/">
19 <link rel="prev" href="http://defaria.com/blogs/Status/2012/02/using-pdsql-to.html" title="Using PDSQL to update Clearquest databases">
20 <link rel="next" href="http://defaria.com/blogs/Status/2012/05/20120511adefari.html" title="2012-05-11-adefaria">
21 <!-- Open Graph Protocol -->
22 <meta property="og:type" content="article">
23 <meta property="og:locale" content="en-us">
24 <meta property="og:title" content="Perl::Critic">
25 <meta property="og:url" content="http://defaria.com/blogs/Status/2012/04/perlcritic-1.html">
26 <meta property="og:description" content="OK, I'm a nerd and I'm pretty passionate about Perl. But in my defense this is my business and my chosen career - it is what I went to school for way back in the day. So I listen to...">
27 <meta property="og:site_name" content="Status">
28 <meta property="og:image" content="/mt/mt-static/support/theme_static/rainier/img/siteicon-sample.png">
30 <meta itemprop="description" content="OK, I'm a nerd and I'm pretty passionate about Perl. But in my defense this is my business and my chosen career - it is what I went to school for way back in the day. So I listen to...">
31 <link itemprop="url" href="http://defaria.com/blogs/Status/2012/04/perlcritic-1.html">
32 <link itemprop="image" href="/mt/mt-static/support/theme_static/rainier/img/siteicon-sample.png">
37 <div id="container-inner">
38 <header id="header" role="banner">
39 <div id="header-inner">
40 <div id="header-content">
42 <a href="http://defaria.com/blogs/Status/">
51 <nav role="navigation">
53 <li><a href="http://defaria.com/blogs/Status/">Home</a></li>
62 <div id="content-inner">
63 <ul class="breadcrumb breadcrumb-list">
64 <li class="breadcrumb-list-item"><a href="http://defaria.com/blogs/Status/">Home</a></li>
65 <li class="breadcrumb-list-item">Perl::Critic</li>
67 <div id="individual-main" class="main" role="main">
68 <article id="entry-1972" class="entry entry-asset asset hentry">
69 <div class="asset-header">
70 <h2 itemprop="name" class="asset-name entry-title">Perl::Critic</h2>
71 <footer class="asset-meta">
72 <ul class="asset-meta-list">
73 <li class="asset-meta-list-item">Posted on <time datetime="2012-04-11T13:38:27-08:00" itemprop="datePublished">April 11, 2012</time></li>
74 <li class="asset-meta-list-item">by <span class="author entry-author vcard"></span></li>
77 <li class="asset-meta-list-item">in <a itemprop="articleSection" rel="tag" href="http://defaria.com/blogs/Status/broadcom/">Broadcom</a></li>
83 <div class="entry-content asset-content" itemprop="articleBody">
84 <p>OK, I'm a nerd and I'm pretty passionate about Perl. But in my defense this is my business and my chosen career - it is what I went to school for way back in the day. So I listen to podcasts about many topics including technology. One podcast I listen to regularly is <a href="http://twit.tv/show/floss-weekly">FLOSS Weekly</a> with <a href="https://en.wikipedia.org/wiki/Randal_Schwartz">Randal Schwartz</a>. Randal wrote <a href="http://www.amazon.com/Learning-Perl-Randal-L-Schwartz/dp/1449303587">Learning Perl</a> among other Perl books and he had on <a href="http://search.cpan.org/~thaljef/">Jeffery Thalhammer</a> who talked about his creation <a href="http://www.perlcritic.org/">Perl::Critic</a>. For those who may be interested the Perl::Critic episode is <a href="http://twit.tv/show/floss-weekly/189">here</a>.</p>
86 <p>The easiest way you can try out Perl::Critic by going to <a href="http://www.perlcritic.org/">http://www.perlcritic.org/</a>. You can even evaluate your own Perl scripts by using the Choose File and set your severity level. You can start with gentle but I usually do harsh as that's in the middle.</p>
88 <p>Perl::Critic is a static analyzer that finds inconsistencies and possible errors in your Perl code as well as tries to enforce best practices as written about in <a href="http://shop.oreilly.com/product/9780596001735.do">Perl Best Practices</a> by Damian Conway. Perl::Critic is implemented as a CPAN module. There is also a command line (<a href="http://search.cpan.org/%7Eschwigon/Benchmark-Perl-Formance-Cargo-0.03/lib/auto/Benchmark/Perl/Formance/Cargo/PerlCritic/perlcritic">/usr/bin/perlcritic</a>) that allows you to run perlcritic on your code from the command line. But the web page is better because it provides links to explanations of why Perl::Critic thinks what it complains about is a problem as well as tells you how to fix it.</p>
90 <p>Now, of course, critiquing your code is highly subjective and you may not agree with the rational for why Perl::Critic flags this as a problem. Perl::Critic is very tunable - you can set settings in ~/.perlcriticrc to say "We don't want you, Perl::Critic, to flag this as a problem".</p>
92 <p>If you use <a href="https://eclipse.org/">Eclipse</a> as your IDE and have <a href="http://www.epic-ide.org/">EPIC, the Eclipse Perl Integration plugin</a>, and have <a href="http://cygwin.com/">Cygwin</a> installed with <a href="http://search.cpan.org/%7Eschwigon/Benchmark-Perl-Formance-Cargo-0.03/lib/auto/Benchmark/Perl/Formance/Cargo/PerlCritic/perlcritic">perlcritic</a> installed too, you can configure Eclipse to use Perl::Critic directly in the editor and flag errors as you code which you can then fix.</p>
94 <p>For example, you can see the little triangle with "!" in it relates to the line in the Problems tab at the bottom which says that I've defined $value but never used it.</p>
96 <img src="/blogs/Status/images/Eclipse.png">
99 <nav class="page-navigation entry-navigation pagination content-nav">
100 <ul class="page-navigation-list">
102 <li class="page-navigation-list-item page-navigation-prev"><a rel="prev" href="http://defaria.com/blogs/Status/2012/02/using-pdsql-to.html" title="Using PDSQL to update Clearquest databases">Previous entry</a></li>
105 <li class="page-navigation-list-item page-navigation-next"><a rel="next" href="http://defaria.com/blogs/Status/2012/05/20120511adefari.html" title="2012-05-11-adefaria">Next entry</a></li>
110 <aside id="zenback" class="zenback feedback">
111 Please paste Zenback script code here.
118 <aside class="widgets related" role="complementary">
119 <nav class="widget-search widget">
120 <div class="widget-content">
121 <form method="get" id="search" action="http://defaria.com/mt/mt-search.cgi">
123 <input type="text" name="search" value="" placeholder="Search...">
125 <input type="hidden" name="IncludeBlogs" value="8">
127 <input type="hidden" name="limit" value="20">
128 <button type="submit" name="button">
129 <img alt="Search" src="/mt/mt-static/support/theme_static/rainier/img/search-icon.png">
135 <nav class="widget-archive-category widget">
136 <h3 class="widget-header">Categories</h3>
137 <div class="widget-content">
140 <ul class="widget-list">
143 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/ameriquest/">Ameriquest (99)</a>
151 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/audience/">Audience (3)</a>
159 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/broadcom/">Broadcom (76)</a>
167 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/gpdb/">GPDB (35)</a>
175 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/general-dynamics/">General Dynamics (61)</a>
183 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/general-electric/">General Electric (13)</a>
191 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/hewlett-packard/">Hewlett Packard (13)</a>
199 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/lynuxworks/">LynuxWorks (162)</a>
207 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/pqa/">PQA (35)</a>
215 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/salira/">Salira (79)</a>
223 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/tellabs/">Tellabs (2)</a>
231 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/texas-instruments/">Texas Instruments (31)</a>
243 <nav class="widget-archive-dropdown widget">
244 <h3 class="widget-header">Archives</h3>
245 <div class="widget-content">
247 <option>Select a Month...</option>
249 <option value="http://defaria.com/blogs/Status/2016/02/">February 2016</option>
253 <option value="http://defaria.com/blogs/Status/2014/09/">September 2014</option>
257 <option value="http://defaria.com/blogs/Status/2014/04/">April 2014</option>
261 <option value="http://defaria.com/blogs/Status/2014/03/">March 2014</option>
265 <option value="http://defaria.com/blogs/Status/2013/02/">February 2013</option>
269 <option value="http://defaria.com/blogs/Status/2012/09/">September 2012</option>
273 <option value="http://defaria.com/blogs/Status/2012/08/">August 2012</option>
277 <option value="http://defaria.com/blogs/Status/2012/05/">May 2012</option>
281 <option value="http://defaria.com/blogs/Status/2012/04/">April 2012</option>
285 <option value="http://defaria.com/blogs/Status/2012/02/">February 2012</option>
289 <option value="http://defaria.com/blogs/Status/2012/01/">January 2012</option>
293 <option value="http://defaria.com/blogs/Status/2011/10/">October 2011</option>
297 <option value="http://defaria.com/blogs/Status/2011/07/">July 2011</option>
301 <option value="http://defaria.com/blogs/Status/2010/09/">September 2010</option>
305 <option value="http://defaria.com/blogs/Status/2010/08/">August 2010</option>
309 <option value="http://defaria.com/blogs/Status/2010/04/">April 2010</option>
313 <option value="http://defaria.com/blogs/Status/2010/03/">March 2010</option>
317 <option value="http://defaria.com/blogs/Status/2010/02/">February 2010</option>
321 <option value="http://defaria.com/blogs/Status/2009/05/">May 2009</option>
325 <option value="http://defaria.com/blogs/Status/2009/04/">April 2009</option>
329 <option value="http://defaria.com/blogs/Status/2008/07/">July 2008</option>
333 <option value="http://defaria.com/blogs/Status/2008/05/">May 2008</option>
337 <option value="http://defaria.com/blogs/Status/2008/04/">April 2008</option>
341 <option value="http://defaria.com/blogs/Status/2008/03/">March 2008</option>
345 <option value="http://defaria.com/blogs/Status/2008/02/">February 2008</option>
349 <option value="http://defaria.com/blogs/Status/2008/01/">January 2008</option>
353 <option value="http://defaria.com/blogs/Status/2007/12/">December 2007</option>
357 <option value="http://defaria.com/blogs/Status/2007/11/">November 2007</option>
361 <option value="http://defaria.com/blogs/Status/2007/10/">October 2007</option>
365 <option value="http://defaria.com/blogs/Status/2007/09/">September 2007</option>
369 <option value="http://defaria.com/blogs/Status/2007/08/">August 2007</option>
373 <option value="http://defaria.com/blogs/Status/2007/07/">July 2007</option>
377 <option value="http://defaria.com/blogs/Status/2007/06/">June 2007</option>
381 <option value="http://defaria.com/blogs/Status/2007/05/">May 2007</option>
385 <option value="http://defaria.com/blogs/Status/2007/04/">April 2007</option>
389 <option value="http://defaria.com/blogs/Status/2007/03/">March 2007</option>
393 <option value="http://defaria.com/blogs/Status/2007/01/">January 2007</option>
397 <option value="http://defaria.com/blogs/Status/2006/12/">December 2006</option>
401 <option value="http://defaria.com/blogs/Status/2006/11/">November 2006</option>
405 <option value="http://defaria.com/blogs/Status/2006/10/">October 2006</option>
409 <option value="http://defaria.com/blogs/Status/2006/09/">September 2006</option>
413 <option value="http://defaria.com/blogs/Status/2006/07/">July 2006</option>
417 <option value="http://defaria.com/blogs/Status/2006/06/">June 2006</option>
421 <option value="http://defaria.com/blogs/Status/2006/05/">May 2006</option>
425 <option value="http://defaria.com/blogs/Status/2006/04/">April 2006</option>
429 <option value="http://defaria.com/blogs/Status/2006/03/">March 2006</option>
433 <option value="http://defaria.com/blogs/Status/2006/02/">February 2006</option>
437 <option value="http://defaria.com/blogs/Status/2006/01/">January 2006</option>
441 <option value="http://defaria.com/blogs/Status/2005/12/">December 2005</option>
445 <option value="http://defaria.com/blogs/Status/2005/11/">November 2005</option>
449 <option value="http://defaria.com/blogs/Status/2005/10/">October 2005</option>
453 <option value="http://defaria.com/blogs/Status/2005/09/">September 2005</option>
457 <option value="http://defaria.com/blogs/Status/2005/08/">August 2005</option>
461 <option value="http://defaria.com/blogs/Status/2005/07/">July 2005</option>
465 <option value="http://defaria.com/blogs/Status/2005/06/">June 2005</option>
469 <option value="http://defaria.com/blogs/Status/2005/05/">May 2005</option>
473 <option value="http://defaria.com/blogs/Status/2005/04/">April 2005</option>
477 <option value="http://defaria.com/blogs/Status/2005/03/">March 2005</option>
481 <option value="http://defaria.com/blogs/Status/2005/02/">February 2005</option>
485 <option value="http://defaria.com/blogs/Status/2005/01/">January 2005</option>
489 <option value="http://defaria.com/blogs/Status/2004/12/">December 2004</option>
493 <option value="http://defaria.com/blogs/Status/2004/09/">September 2004</option>
497 <option value="http://defaria.com/blogs/Status/2004/08/">August 2004</option>
501 <option value="http://defaria.com/blogs/Status/2004/07/">July 2004</option>
505 <option value="http://defaria.com/blogs/Status/2004/06/">June 2004</option>
509 <option value="http://defaria.com/blogs/Status/2004/05/">May 2004</option>
513 <option value="http://defaria.com/blogs/Status/2004/04/">April 2004</option>
517 <option value="http://defaria.com/blogs/Status/2004/03/">March 2004</option>
521 <option value="http://defaria.com/blogs/Status/2004/02/">February 2004</option>
525 <option value="http://defaria.com/blogs/Status/2004/01/">January 2004</option>
529 <option value="http://defaria.com/blogs/Status/2003/12/">December 2003</option>
533 <option value="http://defaria.com/blogs/Status/2003/11/">November 2003</option>
541 <div class="widget-syndication widget section">
542 <div class="widget-content">
543 <p><img src="http://defaria.com/mt/mt-static/images/status_icons/feed.gif" alt="Subscribe to feed" width="9" height="9" /> <a href="http://defaria.com/blogs/Status/atom.xml">Subscribe to this blog's feed</a></p>
551 <footer id="footer" role="contentinfo">
552 <div id="footer-inner">
553 <div id="footer-content">
554 <nav role="navigation">
556 <li><a href="http://defaria.com/blogs/Status/">Home</a></li>
562 <p class="license">© Copyright 2016.</p>
563 <p class="poweredby">Powered by <a href="http://www.movabletype.org/">Movable Type</a></p>
569 <script src="http://defaria.com/mt/mt-static/jquery/jquery.min.js"></script>
570 <script src="http://defaria.com/blogs/Status/mt-theme-scale2.js"></script>