<?xml version="1.0" encoding="US-ASCII"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom"><title>Perl Tips</title><subtitle>From Perl Training Australia</subtitle><logo>http://perltraining.com.au/images/logo.png</logo><link href="http://perltraining.com.au/tips/" /><id>http://perltraining.com.au/tips/</id><author><name>Perl Training Australia</name></author><updated>2012-03-27T00:00:00Z</updated><generator uri="http://search.cpan.org/dist/XML-Atom-SimpleFeed/" version="0.86">XML::Atom::SimpleFeed</generator><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="perltips" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://perltraining.com.au/tips/index.atom" /><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Fperltraining.com.au%2Ftips%2Findex.atom" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Fperltraining.com.au%2Ftips%2Findex.atom" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Fperltraining.com.au%2Ftips%2Findex.atom" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.bloglines.com/sub/http://perltraining.com.au/tips/index.atom" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Fperltraining.com.au%2Ftips%2Findex.atom" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://fusion.google.com/add?feedurl=http%3A%2F%2Fperltraining.com.au%2Ftips%2Findex.atom" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Fperltraining.com.au%2Ftips%2Findex.atom" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><entry><title>Installing modules with cpanminus</title><link href="http://perltraining.com.au/tips/2012-03-27.html" /><id>http://perltraining.com.au/tips/2012-03-27.html</id><content type="html">&lt;p&gt;One of Perl's greatest advantages is the CPAN &#xe2;&#x80;&#x94; tens of thousands of
freely available modules to help you solve almost any problem
imaginable.  However installing CPAN modules hasn't always been as
straightforward as it should be... until &lt;em&gt;cpanminus&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;App::Cpanminus&lt;/code&gt;, or just &lt;code&gt;cpanm&lt;/code&gt;, is a fast, lightweight, pure-perl
CPAN installer.  Its features are numerous, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;No configuration required.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Can be run as a regular user; no need for root.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Works with &lt;code&gt;local::lib&lt;/code&gt; and &lt;code&gt;perlbrew&lt;/code&gt; out of the box.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Condensed and clarified output.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Absolutely no dependencies.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Small memory footprint (great for virtual machines).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Works with Perl 5.8 or later.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;&lt;a href="http://perltraining.com.au/tips/2012-03-27.html"&gt;Read more...&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/PerlTips?a=fa9OxWWHQxk:KgVc0OTr2yU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PerlTips?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PerlTips?a=fa9OxWWHQxk:KgVc0OTr2yU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PerlTips?i=fa9OxWWHQxk:KgVc0OTr2yU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PerlTips?a=fa9OxWWHQxk:KgVc0OTr2yU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PerlTips?i=fa9OxWWHQxk:KgVc0OTr2yU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PerlTips?a=fa9OxWWHQxk:KgVc0OTr2yU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PerlTips?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PerlTips?a=fa9OxWWHQxk:KgVc0OTr2yU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PerlTips?i=fa9OxWWHQxk:KgVc0OTr2yU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><updated>2012-03-27T00:00:00Z</updated></entry><entry><title> Writing our own tests with Test::More </title><link href="http://perltraining.com.au/tips/2011-11-08.html" /><id>http://perltraining.com.au/tips/2011-11-08.html</id><content type="html">&lt;p&gt;&lt;code&gt;Test::More&lt;/code&gt; provides many great testing functions.  We'll use some of
these throughout this tip, but you should read the documentation for
more information.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a href="http://perltraining.com.au/tips/2011-11-08.html"&gt;Read more...&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/PerlTips?a=EMhUdHmCYSY:B4MemrpeNfI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PerlTips?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PerlTips?a=EMhUdHmCYSY:B4MemrpeNfI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PerlTips?i=EMhUdHmCYSY:B4MemrpeNfI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PerlTips?a=EMhUdHmCYSY:B4MemrpeNfI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PerlTips?i=EMhUdHmCYSY:B4MemrpeNfI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PerlTips?a=EMhUdHmCYSY:B4MemrpeNfI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PerlTips?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PerlTips?a=EMhUdHmCYSY:B4MemrpeNfI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PerlTips?i=EMhUdHmCYSY:B4MemrpeNfI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><updated>2011-11-08T00:00:00Z</updated></entry><entry><title> Module testing basics </title><link href="http://perltraining.com.au/tips/2011-10-24.html" /><id>http://perltraining.com.au/tips/2011-10-24.html</id><content type="html">
&lt;p&gt;A program is secure if you can depend on it to behave as you expect.&lt;/p&gt;
&lt;p&gt;A module is not complete, until you are certain that it works correctly.
The easiest way to ensure that this is the case, and to protect yourself
from introducing bugs in the future, is to create a test suite for your
code.  Perl has a fantastic testing culture and many great tools to make
testing easy.&lt;/p&gt;
&lt;p&gt;For further information on testing read the
&lt;a href="http://search.cpan.org/perldoc?Test::Tutorial"&gt;Test::Tutorial
documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;a href="http://perltraining.com.au/tips/2011-10-24.html"&gt;Read more...&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/PerlTips?a=8lh7SJs3Fds:NnfW9xWggHc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PerlTips?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PerlTips?a=8lh7SJs3Fds:NnfW9xWggHc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PerlTips?i=8lh7SJs3Fds:NnfW9xWggHc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PerlTips?a=8lh7SJs3Fds:NnfW9xWggHc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PerlTips?i=8lh7SJs3Fds:NnfW9xWggHc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PerlTips?a=8lh7SJs3Fds:NnfW9xWggHc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PerlTips?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PerlTips?a=8lh7SJs3Fds:NnfW9xWggHc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PerlTips?i=8lh7SJs3Fds:NnfW9xWggHc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><updated>2011-10-24T00:00:00Z</updated></entry><entry><title>Smart::Comments and Devel::Cover</title><link href="http://perltraining.com.au/tips/2011-02-25.html" /><id>http://perltraining.com.au/tips/2011-02-25.html</id><content type="html">&lt;h2&gt;Comment your code with Smart::Comments&lt;/h2&gt;
&lt;p&gt;Normally we comment our code so that humans (including ourselves)
can understand it later on.  However with &lt;code&gt;Smart::Comments&lt;/code&gt; it
becomes possible to have comments which are not only useful in
comprehending our code, but also in &lt;em&gt;debugging&lt;/em&gt; our code.&lt;/p&gt;
&lt;p&gt;With &lt;code&gt;Smart::Comments&lt;/code&gt; enabled, when a special comment
sequence is seen (&lt;code&gt;###&lt;/code&gt; by default) debugging output is
produced:&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;a href="http://perltraining.com.au/tips/2011-02-25.html"&gt;Read more...&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/PerlTips?a=ZStppNYGYgo:RkdexS7rKMU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PerlTips?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PerlTips?a=ZStppNYGYgo:RkdexS7rKMU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PerlTips?i=ZStppNYGYgo:RkdexS7rKMU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PerlTips?a=ZStppNYGYgo:RkdexS7rKMU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PerlTips?i=ZStppNYGYgo:RkdexS7rKMU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PerlTips?a=ZStppNYGYgo:RkdexS7rKMU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PerlTips?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PerlTips?a=ZStppNYGYgo:RkdexS7rKMU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PerlTips?i=ZStppNYGYgo:RkdexS7rKMU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><updated>2011-02-25T00:00:00Z</updated></entry><entry><title>Perl Programming Best Practices 2011 (part 3 - new versions of Perl and modules) </title><link href="http://perltraining.com.au/tips/2011-02-15.html" /><id>http://perltraining.com.au/tips/2011-02-15.html</id><content type="html">&lt;h2&gt;Experimenting with new versions of Perl and modules&lt;/h2&gt;
&lt;p&gt;Many developers have a chicken-and-egg problem when it comes to upgrading
their version of Perl.  On one hand, the system version of Perl cannot be
upgraded because it might break existing scripts, on the the other hand
it has been difficult to install your own version of Perl to see whether an
upgrade is safe.  The same happens with modules.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;a href="http://perltraining.com.au/tips/2011-02-15.html"&gt;Read more...&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/PerlTips?a=gBsUU0tQGmQ:hJ61c79sMBU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PerlTips?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PerlTips?a=gBsUU0tQGmQ:hJ61c79sMBU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PerlTips?i=gBsUU0tQGmQ:hJ61c79sMBU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PerlTips?a=gBsUU0tQGmQ:hJ61c79sMBU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PerlTips?i=gBsUU0tQGmQ:hJ61c79sMBU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PerlTips?a=gBsUU0tQGmQ:hJ61c79sMBU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PerlTips?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/PerlTips?a=gBsUU0tQGmQ:hJ61c79sMBU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PerlTips?i=gBsUU0tQGmQ:hJ61c79sMBU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content><updated>2011-02-15T00:00:00Z</updated></entry></feed>

