<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Perlbuzz</title>
    <link rel="alternate" type="text/html" href="http://perlbuzz.com/" />
    <link rel="self" type="application/atom+xml" href="http://perlbuzz.com/atom.xml" />
    <id>tag:perlbuzz.com,2008-11-11://1</id>
    <updated>2010-03-14T04:40:19Z</updated>
    <subtitle>What&apos;s happening in the world of Perl programming, including Perl 5, Perl 6, the CPAN and Parrot?</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.31-en</generator>

<entry>
    <title>Announcing Strawberry Perl Professional</title>
    <link rel="alternate" type="text/html" href="http://perlbuzz.com/2010/03/announcing-strawberry-perl-professional.html" />
    <id>tag:perlbuzz.com,2010://1.765</id>

    <published>2010-03-14T04:38:50Z</published>
    <updated>2010-03-14T04:40:19Z</updated>

    <summary>By Curtis Jewell You may have heard about a new and larger Perl distribution for Windows called &quot;Strawberry Perl Professional&quot;. The idea behind it was known as &quot;Chocolate Perl&quot;. You may have heard that name, too. What does that mean...</summary>
    <author>
        <name>Andy Lester</name>
        <uri>http://theworkinggeek.com/</uri>
    </author>
    
        <category term="Perl 5" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Windows" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://perlbuzz.com/">
        <![CDATA[<p><i>By Curtis Jewell</i></p>

<p>
You may have heard about a new and larger Perl distribution for
Windows called "Strawberry Perl Professional". The idea behind it
was known as "Chocolate Perl". You may have heard that name, too.
What does that mean for Strawberry Perl for Windows, and for Perl
in general?
</p>


<p>
Don't worry, <a href="http://strawberryperl.com/">Strawberry Perl</a>
will still be maintained. In fact, Strawberry Perl Professional
would not be possible without Strawberry Perl as it has been for
the past few years, and is directly installable on top of Strawberry
Perl. The ideas behind Strawberry Perl and Strawberry Perl Professional
overlap, but are subtly different.
</p>

<p>
Strawberry Perl is made for the "intermediate-to-expert" Perl
programmer (although even newbies can use it), who is likely to be
coming over from Unix and is needing to write Perl scripts and
modules in the Windows environment. The goal is to be as close to
the Perl experience on Unix as possible, and with a minimum of
problems, while still staying native to Windows.
</p>

<p>
The goals of the modules that Strawberry Perl includes,
therefore, are:

<ol>
    <li>
    To be able to install other Perl modules easier, whether from
    CPAN, from .par files, or .ppm files.
    </li>
    <li>
    To include hard-to-install modules (the databases, and the
    cryptographic toolchain).
    </li>
</ol>

</p>

<p>
Strawberry Perl Professional is made for the Perl programmer of
any (or even no) experience writing Perl in or for the Windows
environment, and includes in addition:

<ol>
<li>Modules that significant segments of the Perl community use on
a regular basis (BioPerl, Catalyst.)</li>
<li>Modules that help improve the quality and readability of the
Perl code being written, and make releasing Perl programs and
modules easier.</li>
<li>Graphical programs to assist in maintenance and debugging of
Perl code, viewing Perl documentation, and installing Perl
modules.</li>
</ol>


<p>
To this end, Strawberry Perl Professional includes <a href="http://padre.perlide.org/">Padre as an IDE</a>,
and also includes a graphical CPANPLUS shell and Plain Old Documentation
viewer. It also includes most of the modules in Task::Kensho, and
more links to websites for the Perl community, especially relating
to the installed modules, and introductions to programming Perl.
</p>

<p>
If you want to test out the first alpha version of Strawberry
Perl Professional, read <a href=
"http://csjewell.dreamwidth.org/8928.html">the announcement</a> (so
you know what you're getting into) and then go to the <a href=
"http://strawberryperl.com/beta/">Strawberry Perl beta page</a> and
download and install it. Suggestions for improvements, and bug
fixes to the component modules, are certainly welcome - I've
already been given quite a few.
</p>

<p>
<i><a href="http://csjewell.dreamwidth.org/">Curtis Jewell</a> has
been helping build and write Strawberry Perl for Windows for the
past year, and also reports bugs and sends patches to other Perl
projects.</i>
</p>

]]>
        
    </content>
</entry>

<entry>
    <title>Perl one-liner to sample your Mac&apos;s voices</title>
    <link rel="alternate" type="text/html" href="http://perlbuzz.com/2010/03/perl-one-liner-to-sample-your-macs-voices.html" />
    <id>tag:perlbuzz.com,2010://1.764</id>

    <published>2010-03-10T05:29:51Z</published>
    <updated>2010-03-10T05:45:07Z</updated>

    <summary>I&apos;ve been following stories about Roger Ebert&apos;s new voice, which a company has made so that they can apparently plug it into his Mac. In his appearances on camera, the voice he&apos;s been using is the Mac &quot;Alex&quot; voice. What...</summary>
    <author>
        <name>Andy Lester</name>
        <uri>http://theworkinggeek.com/</uri>
    </author>
    
        <category term="Perl 5" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://perlbuzz.com/">
        <![CDATA[<p>I've been following stories about <a href="http://gizmodo.com/5483870/roger-eberts-new-voice">Roger Ebert's new voice</a>, which a company has made so that they can apparently plug it into his Mac.  In his appearances on camera, the voice he's been using is the Mac "Alex" voice.  What other voices does your Mac have? Here's a Perl one-liner to play them.</p>

<p>From the Terminal window, paste this in at the prompt:</p>

<pre>
perl -le'for (@ARGV){m{/(\w+?)\.SpeechVoice};' \
  -e'$_=$1;s/([a-z])([A-Z])/$1 $2/g;' \
  -e'print qq{say -v "$_" This is $_};}' \
  /System/Library/Speech/Voices/* | sh -x
</pre>

<p>On my Mac, "Organ" isn't found, but I don't know why.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Perlbuzz news roundup for 2010-03-09</title>
    <link rel="alternate" type="text/html" href="http://perlbuzz.com/2010/03/perlbuzz-news-roundup-for-2010-03-09.html" />
    <id>tag:perlbuzz.com,2010://1.762</id>

    <published>2010-03-09T16:46:42Z</published>
    <updated>2010-03-09T16:47:24Z</updated>

    <summary> These links are collected from the Perlbuzz Twitter feed. If you have suggestions for news bits, please mail me at andy@perlbuzz.com. What&apos;s going on with San Francisco Perl Mongers? (blogs.perl.org) Contributing is easy: A first-timer talks about adding to...</summary>
    <author>
        <name>Andy Lester</name>
        <uri>http://theworkinggeek.com/</uri>
    </author>
    
        <category term="CPAN" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Code craft" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Perl 5" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://perlbuzz.com/">
        <![CDATA[<p>
These links are collected from the
<a href="http://twitter.com/perlbuzz">Perlbuzz Twitter feed</a>.
If you have suggestions for news bits, please mail me at
<a href="mailto:andy@perlbuzz.com">andy@perlbuzz.com</a>.
</p>

<ul>

<li>What's going on with San Francisco Perl Mongers? (<a href="http://blogs.perl.org/users/phred/2010/01/sfpm-annual-report-and-plans.html">blogs.perl.org</a>)</li>
<li>Contributing is easy: A first-timer talks about adding to CPAN (<a href="http://blogs.perl.org/users/david/2010/02/contributing-is-easy.html">blogs.perl.org</a>)</li>
<li>Help keep the world safe from SQL injection: (<a href="http://perlbuzz.com/2010/02/help-keep-the-world-safe-from-sql-injection.html">perlbuzz.com</a>)</li>
<li>How to learn how to get help in Perl (<a href="http://use.perl.org/~redspike/journal/40162">use.perl.org</a>)</li>
<li>The Perl Foundation wants your input on grant proposals for 2010 (<a href="http://news.perlfoundation.org/2010/02/2010q1_grant_proposals.html">news.perlfoundation.org</a>)</li>
<li>Why Ruby is prettier and Padre changes the Perl community (<a href="http://use.perl.org/~Alias/journal/40170">use.perl.org</a>)</li>
<li>Manage your Perl modules with git (<a href="http://www.effectiveperlprogramming.com/blog/60">effectiveperlprogramming.com</a>)</li>
<li>Call for papers for YAPC::NA 2010 in Columbus. Theme: Modern Perl 5 (<a href="http://news.perlfoundation.org/2010/02/yapcna_2010_call_for_papers.html">news.perlfoundation.org</a>)</li>
<li>Famous Perl One-Liners Explained part 5: Text conversion and substitution (<a href="http://www.catonmat.net/blog/perl-one-liners-explained-part-five/">catonmat.net</a>)</li>
<li>The Italians like ack, too (<a href="http://www.cattlegrid.info/blog/2009/11/ack-a-better-grep.html">cattlegrid.info</a>)</li>
<li>Bash completion for perldoc (<a href="http://blogs.perl.org/users/aristotle/2010/02/more-bash-completion-help-for-perldoc.html">blogs.perl.org</a>)</li>
<li>cpanminus, the new CPAN shell superstar (<a href="http://marcus.nordaaker.com/2010/02/cpanminus-the-new-cpan-superstar/">marcus.nordaaker.com</a>)</li>
<li>RT <a href="http://twitter.com/chromatic">@chromatic</a>_x Kudos to *many* active #perl 5 porters for the successful 5.11 release series: (<a href="http://ur1.ca/n5cv">ur1.ca</a>)</li>
<li>Testing a DB-intensive app (<a href="http://blog.urth.org/2010/02/testing-a-database-intensive-application.html">blog.urth.org</a>)</li>
<li>More news on the TPF wiki overhaul (<a href="http://use.perl.org/~perl6doc/journal/40211">use.perl.org</a>)</li>
<li>Do you still program in Perl? (<a href="http://www.reddit.com/r/programming/comments/b3vnu/do_you_still_program_in_perl/">reddit.com</a>)</li>
<li>Benchmarking is for losers, Profiling rulez! (<a href="http://blog.urth.org/2010/03/benchmarking-versus-profiling.html">blog.urth.org</a>)</li>
<li>Damian Conway's been posting a series of columns on vim: (<a href="http://blogs.perl.org/users/ovid/2010/03/whats-the-mad-doctor-doing.html">blogs.perl.org</a>)</li>
<li>Testing and looging with Dist::Zilla (<a href="http://rjbs.manxome.org/rubric/entry/1821">rjbs.manxome.org</a>)</li>
<li>Safe.pm 2.25 fixes security hole (<a href="http://blogs.perl.org/users/rafael_garcia-suarez/2010/03/new-safepm-fixes-security-hole.html">blogs.perl.org</a>)</li>
<li>Serving production web requests with the Catalyst development server (<a href="http://blog.afoolishmanifesto.com/archives/1303">blog.afoolishmanifesto.com</a>)</li>
</ul>]]>
        
    </content>
</entry>

<entry>
    <title>Help keep the world safe from SQL injection</title>
    <link rel="alternate" type="text/html" href="http://perlbuzz.com/2010/02/help-keep-the-world-safe-from-sql-injection.html" />
    <id>tag:perlbuzz.com,2010://1.761</id>

    <published>2010-02-06T20:42:08Z</published>
    <updated>2010-02-06T20:55:45Z</updated>

    <summary>A while back, I put up bobby-tables.com as a repository for showing people the right way to handle external data in their SQL calls. Whenever someone pops up on a mailing list or IRC and they&apos;re building SQL statements using...</summary>
    <author>
        <name>Andy Lester</name>
        <uri>http://theworkinggeek.com/</uri>
    </author>
    
        <category term="CPAN" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Code craft" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://perlbuzz.com/">
        <![CDATA[<p>A while back, I put up <a href="http://bobby-tables.com">bobby-tables.com</a> as a repository for showing people the right way to handle external data in their SQL calls.  Whenever someone pops up on a mailing list or IRC and they're building SQL statements using external tainted data, you can just refer them to the site.</p>

<p>In the past few days, I've spiffed up the site (with design help from <a href="http://jeanaclark.org/">Jeana Clark</a>) and added pages on <a href="http://bobby-tables.com/perl.html">Perl</a> and <a href="http://bobby-tables.com/php.html">PHP</a>.  I need more examples, though.  It's 2010, and there's no reason anyone shouldn't know about parameterized SQL calls.</p>

<p>The site source is <a href="http://github.com/petdance/bobby-tables">hosted on github</a>, so if you have any contributions, please fork it and let me know about your applied changes, or you can email me directly.</p>

<p>Thanks!</p>

<p>P.S. In the next few days, I hope to fire up some redesign on <a href="http://perl101.org/">perl101.org</a>, too.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Perlbuzz news roundup for 2010-02-01</title>
    <link rel="alternate" type="text/html" href="http://perlbuzz.com/2010/02/perlbuzz-news-roundup-for-2009-02-01.html" />
    <id>tag:perlbuzz.com,2010://1.760</id>

    <published>2010-02-01T16:43:24Z</published>
    <updated>2010-02-04T16:00:00Z</updated>

    <summary> These links are collected from the Perlbuzz Twitter feed. If you have suggestions for news bits, please mail me at andy@perlbuzz.com. Famous Perl One-Liners Explained, Part IV: String and Array Creation (catonmat.net) Run invdividual Test::Class methods in vim (blogs.perl.org)...</summary>
    <author>
        <name>Andy Lester</name>
        <uri>http://theworkinggeek.com/</uri>
    </author>
    
        <category term="CPAN" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Community" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Perl 5" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://perlbuzz.com/">
        <![CDATA[<p>
These links are collected from the
<a href="http://twitter.com/perlbuzz">Perlbuzz Twitter feed</a>.
If you have suggestions for news bits, please mail me at
<a href="mailto:andy@perlbuzz.com">andy@perlbuzz.com</a>.
</p>

<ul>

<li>Famous Perl One-Liners Explained, Part IV: String and Array Creation (<a href="http://www.catonmat.net/blog/perl-one-liners-explained-part-four/">catonmat.net</a>)</li>
<li>Run invdividual Test::Class methods in vim (<a href="http://blogs.perl.org/users/ovid/2010/01/run-individual-testclass-methods-via-vim.html">blogs.perl.org</a>)</li>
<li>A regular expression tip every day from <a href="http://twitter.com/regextip">@regextip</a> (and not just Perl regexes)</li>
<li>A few resources for women in open source (<a href="http://www.itworld.com/open-source/92129/a-few-resources-women-open-source">itworld.com</a>)</li>
<li>The next QA hackathon: What do you need? (<a href="http://blogs.perl.org/users/ovid/2010/01/next-qa-hackathon----what-do-you-need.html">blogs.perl.org</a>)</li>
<li>YAPC::NA 2010 dates announced: June 21-23, 2010 (<a href="http://news.perlfoundation.org/2010/01/yapcna_2010_dates_announced.html">news.perlfoundation.org</a>)</li>
<li>Pod: Now with sane web links (<a href="http://justatheory.com/computers/programming/perl/sane-pod-links.html">justatheory.com</a>)</li>
<li>Creating mailing labels with PostScript::MailLabels (<a href="http://blog.worldlabel.com/2010/labels-with-postscriptmaillabels-getting-started-open-source.html">blog.worldlabel.com</a>)</li>
<li>Ten ways to destroy your community (<a href="http://coffee.geek.nz/10-ways-destroy-your-community.html">coffee.geek.nz</a>)</li>
<li>Conferences on the cheap (<a href="http://blogs.stpcollaborative.com/matt/2010/01/18/conferences-on-the-cheap/">blogs.stpcollaborative.com</a>)</li>
<li>Perl 5.11.4 available (<a href="http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2010-01/msg00643.html">xray.mpe.mpg.de</a>)</li>
<li>Using Perl to find best Wii bundle pricing (<a href="http://blogs.perl.org/users/yary_h/2010/01/bundled-or-unbundled-perl-programming-helps-decide.html">blogs.perl.org</a>)</li>
<li>Now's the chance for North Americans to easily get to a Nordic Perl Workshop (<a href="http://blogs.perl.org/users/brian_d_foy/2010/01/npw-isnt-going-to-get-any-closer-for-north-americans.html">blogs.perl.org</a>)</li>
<li>What is Moose? (<a href="http://perltraining.com.au/tips/2010-01-27.html">perltraining.com.au</a>)</li>
<li>Pretty Perl (<a href="http://blogs.perl.org/users/su-shee/2010/01/perl-made-all-pretty.html">blogs.perl.org</a>)</li>
</ul>
]]>
        

    </content>
</entry>

<entry>
    <title>Perlbuzz news roundup for 2010-01-07</title>
    <link rel="alternate" type="text/html" href="http://perlbuzz.com/2010/01/perlbuzz-news-roundup-for-2010-01-07.html" />
    <id>tag:perlbuzz.com,2010://1.757</id>

    <published>2010-01-07T15:48:02Z</published>
    <updated>2010-01-07T15:48:38Z</updated>

    <summary> These links are collected from the Perlbuzz Twitter feed. If you have suggestions for news bits, please mail me at andy@perlbuzz.com. Decoding climate change with Perl, gnuplot and Google Earth (radar.oreilly.com) Musical chord analysis with CPAN (use.perl.org) Schwern on...</summary>
    <author>
        <name>Andy Lester</name>
        <uri>http://theworkinggeek.com/</uri>
    </author>
    
        <category term="CPAN" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Community" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Conferences" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Perl 5" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://perlbuzz.com/">
        <![CDATA[<p>
These links are collected from the
<a href="http://twitter.com/perlbuzz">Perlbuzz Twitter feed</a>.
If you have suggestions for news bits, please mail me at
<a href="mailto:andy@perlbuzz.com">andy@perlbuzz.com</a>.
</p>

<ul>

<li>Decoding climate change with Perl, gnuplot and Google Earth (<a href="http://radar.oreilly.com/2009/12/decoding-climate-change-with-p.html">radar.oreilly.com</a>)</li>
<li>Musical chord analysis with CPAN (<a href="http://use.perl.org/~ology/journal/40053">use.perl.org</a>)</li>
<li>Schwern on a pet peeve of mine: Numbered test file abuse (<a href="http://use.perl.org/~schwern/journal/40054">use.perl.org</a>)</li>
<li>eumm-migrate - easy way to migrate to Module::Build (<a href="http://use.perl.org/~chorny/journal/40056">use.perl.org</a>)</li>
<li>Readable Perl (<a href="http://blogs.perl.org/users/maettu/2010/01/readable-perl.html">blogs.perl.org</a>)</li>
<li>CPAN's greatest hits: Path::Class (<a href="http://use.perl.org/~schwern/journal/40069">use.perl.org</a>)</li>
<li>Spreadsheet::WriteExcel now supports embedding charts (<a href="http://blogs.perl.org/users/john_mcnamara/2010/01/spreadsheetwriteexcel-with-embedded-charts.html">blogs.perl.org</a>)</li>
<li>Cool things in Perl 6: Subsets (<a href="http://blogs.perl.org/users/ovid/2010/01/cool-things-in-perl-6.html">blogs.perl.org</a>)</li>
<li>Ovid has written an INI file parser in Perl 6 (<a href="http://blogs.perl.org/users/ovid/2009/12/perl-6-configini-on-github.html">blogs.perl.org</a>)</li>
<li>Schedule for Perl Oasis 2010 in Florida posted (<a href="http://perloasis.org/opw2010/schedule">perloasis.org</a>)</li>
<li>Movable Type 5 released (<a href="http://www.movabletype.com/blog/2010/01/introducing-movable-type-5-1.html">movabletype.com</a>)</li>
<li>YAPC Europe Foundation has published its financials (<a href="http://use.perl.org/article.pl?sid=10/01/06/1040257">use.perl.org</a>)</li>
</ul>
]]>
        

    </content>
</entry>

<entry>
    <title>Devel::NYTProf 3.0 is out, more mindblowing than ever</title>
    <link rel="alternate" type="text/html" href="http://perlbuzz.com/2009/12/develnytprof-30-is-out-more-mindblowing-than-ever.html" />
    <id>tag:perlbuzz.com,2009://1.755</id>

    <published>2009-12-29T01:53:26Z</published>
    <updated>2009-12-29T02:14:46Z</updated>

    <summary>Go run to the announcement about Devel::NYTProf v3.0. Marvel at the code profiling goodness. Highlights include: Ability to profile opcodes, which means... NYTProf can now profile slow regular expressions More detailed stats on BEGIN blocks Treemap of subroutines Tracking of...</summary>
    <author>
        <name>Andy Lester</name>
        <uri>http://theworkinggeek.com/</uri>
    </author>
    
        <category term="CPAN" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Perl 5" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://perlbuzz.com/">
        <![CDATA[<p>Go run to the <a href="http://blog.timbunce.org/2009/12/24/nytprof-v3-worth-the-wait/">announcement about Devel::NYTProf v3.0</a>.  Marvel at the code profiling goodness.</p>

<p>Highlights include:</p>

<ul>
<li>Ability to profile opcodes, which means...</li>
<li>NYTProf can now profile slow regular expressions</li>
<li>More detailed stats on BEGIN blocks</li>
<li>Treemap of subroutines</li>
<li>Tracking of which subs called which other subs</li>
<li>Graphing of sub calls</li>
<li>Improved report output</li>
<li>Ability to merge profile runs, such as when a process spawns other processes like mod_perl code does.</li>
</ul>

<p>Already I have found that my regular expression compilation is taking 6% of the runtime in my sample runs in <a href="http://betterthangrep.com">ack</a>.  I had no idea.</p>

<p>Just amazing.  Go try it now, and buy Tim Bunce and the other contributors a beer.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Perlbuzz news roundup for 2009-12-22</title>
    <link rel="alternate" type="text/html" href="http://perlbuzz.com/2009/12/perlbuzz-news-roundup-for-2009-12-22.html" />
    <id>tag:perlbuzz.com,2009://1.754</id>

    <published>2009-12-22T19:42:11Z</published>
    <updated>2009-12-22T19:43:01Z</updated>

    <summary> These links are collected from the Perlbuzz Twitter feed. If you have suggestions for news bits, please mail me at andy@perlbuzz.com. How to import Gravatars into Gmail with 121 lines of Perl (dagolden.com) RT @davorg From Amazon.com: After viewing...</summary>
    <author>
        <name>Andy Lester</name>
        <uri>http://theworkinggeek.com/</uri>
    </author>
    
        <category term="CPAN" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Code craft" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Conferences" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Perl 5" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Perl 6" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Perl Foundation" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://perlbuzz.com/">
        <![CDATA[<p>
These links are collected from the
<a href="http://twitter.com/perlbuzz">Perlbuzz Twitter feed</a>.
If you have suggestions for news bits, please mail me at
<a href="mailto:andy@perlbuzz.com">andy@perlbuzz.com</a>.
</p>

<ul>

<li>How to import Gravatars into Gmail with 121 lines of Perl (<a href="http://www.dagolden.com/index.php/572/how-to-import-gravatars-into-gmail-in-121-lines-of-perl/">dagolden.com</a>)</li>
<li>RT <a href="http://twitter.com/davorg">@davorg</a> From Amazon.com: After viewing "Data Munging With Perl" 61% of customers buy "I Drink For A Reason" (<a href="http://twitter.com/davorg">@davorg</a> is the author of the book)</li>
<li>ack 1.92 is now out (<a href="http://betterthangrep.com/">betterthangrep.com</a>)</li>
<li>Why learn Perl in 2009? (<a href="http://news.ycombinator.com/item?id=987529">news.ycombinator.com</a>)</li>
<li>Screencast about ack from <a href="http://twitter.com/yerhot">@yerhot</a> (<a href="http://fosscasts.com/screencasts/15-Power-Searching-with-Ack">fosscasts.com</a>)</li>
<li>Presenting Module::Starter 1.54 (<a href="http://use.perl.org/~xsawyerx/journal/40017">use.perl.org</a>)</li>
<li>Make the pragmas stop! (<a href="http://justatheory.com/computers/programming/perl/make-the-pragmas-stop.html">justatheory.com</a>)</li>
<li>A collection of Perl one-liners (<a href="http://blogs.perl.org/users/john_mcnamara/2009/12/some-perl-one-liners.html">blogs.perl.org</a>)</li>
<li>Skud on how developers can make things easier for CPAN users unfamiliar with developer tools (<a href="http://infotrope.net/blog/2009/12/18/cpan-fail/">infotrope.net</a>)</li>
<li>The problems with CGI (<a href="http://blogs.perl.org/users/mike_friedman/2009/12/the-problems-with-cgi.html">blogs.perl.org</a>)</li>
<li>SVK was end-of-lifed back in May. It was fantastic back when. (<a href="http://use.perl.org/~jdavidb/journal/40043">use.perl.org</a>)</li>
<li>Is Perl 5's object system really that bad? (<a href="http://use.perl.org/~david+m/journal/40045">use.perl.org</a>)</li>
<li>use Config; # discover your path (<a href="http://use.perl.org/~jozef/journal/40044">use.perl.org</a>)</li>
<li>Perl Foundation has a new Perl events mailing list (<a href="http://news.perlfoundation.org/2009/12/events_mailing_list.html">news.perlfoundation.org</a>)</li>
<li>lists.perl.org has been overhauled and updated (<a href="http://blogs.perl.org/users/leo_lapworth/2009/12/listsperlorg.html">blogs.perl.org</a>)</li>
<li>Perl 5.11.3 now available (<a href="http://use.perl.org/article.pl?sid=09/12/22/199226">use.perl.org</a>)</li>
</ul>
]]>
        
    </content>
</entry>

<entry>
    <title>Perlbuzz news roundup for 2009-12-08</title>
    <link rel="alternate" type="text/html" href="http://perlbuzz.com/2009/12/perlbuzz-news-roundup-for-2009-12-08.html" />
    <id>tag:perlbuzz.com,2009://1.752</id>

    <published>2009-12-08T18:53:47Z</published>
    <updated>2009-12-08T18:54:29Z</updated>

    <summary> These links are collected from the Perlbuzz Twitter feed. If you have suggestions for news bits, please mail me at andy@perlbuzz.com. blogs.perl.org is a new, modern blogging platform for the Perl community (blogs.perl.org) Michael Peters gives thanks for some...</summary>
    <author>
        <name>Andy Lester</name>
        <uri>http://theworkinggeek.com/</uri>
    </author>
    
        <category term="CPAN" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Code craft" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Community" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Perl 5" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Perl 6" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://perlbuzz.com/">
        <![CDATA[<p>
These links are collected from the
<a href="http://twitter.com/perlbuzz">Perlbuzz Twitter feed</a>.
If you have suggestions for news bits, please mail me at
<a href="mailto:andy@perlbuzz.com">andy@perlbuzz.com</a>.
</p>

<ul>

<li>blogs.perl.org is a new, modern blogging platform for the Perl community (<a href="http://blogs.perl.org/users/ovid/2009/11/why-blogsperlorg.html">blogs.perl.org</a>)</li>
<li>Michael Peters gives thanks for some special folks in the Perl community (<a href="http://use.perl.org/~mpeters/journal/39950">use.perl.org</a>)</li>
<li>Peteris Krumins explores secret Perl 5 operators (<a href="http://www.catonmat.net/blog/secret-perl-operators/">catonmat.net</a>)</li>
<li>Dave Rolsky talks about his Markdown parser, Markdent: (<a href="http://blog.urth.org/2009/11/whats-the-point-of-markdent.html">blog.urth.org</a>)</li>
<li>Using PUT and DELETE methods in web apps (<a href="http://blogs.perl.org/users/mike_friedman/2009/11/using-http-put-and-delete-methods-in-web-applications.html">blogs.perl.org</a>)</li>
<li>Tests are divine (<a href="http://blogs.perl.org/users/sawyer_x/2009/12/tests-are-divine.html">blogs.perl.org</a>)</li>
<li>Perl advent calendars galore (<a href="http://perlbuzz.com/2009/12/advent-calendars-galore.html">perlbuzz.com</a>)</li>
<li>mirod releases a new version of xml_grep2 (<a href="http://blogs.perl.org/users/mirod/2009/11/xml-grep2.html">blogs.perl.org</a>)</li>
<li>Introducing gitalist, a modern Git browser written in Perl (<a href="http://blogs.perl.org/users/dan_brook/2009/11/introducing-gitalist.html">blogs.perl.org</a>)</li>
<li>Posting to CPAN from Github (<a href="http://blogs.perl.org/users/john_mcnamara/2009/12/uploading-to-cpan-from-github.html">blogs.perl.org</a>)</li>
<li>GitPAN's first success: Recreating the history for Pod::Simple (<a href="http://use.perl.org/~schwern/journal/39974">use.perl.org</a>)</li>
<li>Why use Kephra? (<a href="http://use.perl.org/~sir_lichtkind/journal/39978">use.perl.org</a>)</li>
<li>Recap of Eric Whilhelm's Perl Foundation grant to overhaul learn.perl.org (<a href="http://news.perlfoundation.org/2009/12/grant_complete_learnperlorg.html">news.perlfoundation.org</a>)</li>
<li>Using Perl to scrape the web (<a href="http://ssscripting.blogspot.com/2009/12/using-perl-to-scrape-web.html">ssscripting.blogspot.com</a>)</li>
<li>Peteris Krumins publishes 30 projects on github (<a href="http://www.catonmat.net/blog/i-pushed-30-of-my-projects-to-github/">catonmat.net</a>)</li>
<li>cope, a command-line program colorizer in Perl (<a href="http://stuff.cytzol.org/cope/">stuff.cytzol.org</a>)</li>
<li>The Perl way of avoiding repeated code: (<a href="http://blogs.perl.org/users/rafael_garcia-suarez/2009/12/c-perl-and-cut-and-paste.html">blogs.perl.org</a>)</li>
</ul>
]]>
        

    </content>
</entry>

<entry>
    <title>Advent calendars galore</title>
    <link rel="alternate" type="text/html" href="http://perlbuzz.com/2009/12/advent-calendars-galore.html" />
    <id>tag:perlbuzz.com,2009://1.750</id>

    <published>2009-12-03T15:15:57Z</published>
    <updated>2009-12-03T15:24:03Z</updated>

    <summary>By Matt Follett It&apos;s the time of year for Advent Calendars and it looks like the Perl community isn&apos;t disappointing this year. Perl Advent Calendar The first day talks about using Package::Alias to alias Mouse to Moose. RJBS Advent Calendar...</summary>
    <author>
        <name>Andy Lester</name>
        <uri>http://theworkinggeek.com/</uri>
    </author>
    
        <category term="CPAN" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Perl 6" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://perlbuzz.com/">
        <![CDATA[<p><em>By Matt Follett</em></p>

<p>It's the time of year for Advent Calendars and it looks like the Perl community isn't disappointing this year.</p>

<p><a href="http://perladvent.pm.org/2009/">Perl Advent Calendar</a></p>

<blockquote>
  <p>The first day talks about using Package::Alias to alias Mouse to Moose.</p>
</blockquote>

<p><a href="http://advent.rjbs.manxome.org/">RJBS Advent Calendar</a></p>

<blockquote>
  <p>Ricardo Signes' calendar to showcase things he has been working on. His first entry is about Sub::Exporter which looks very powerful.</p>
</blockquote>

<p><a href="http://www.catalystframework.org/calendar/2009">Catalyst Advent Calendar</a></p>

<p><a href="http://perl6advent.wordpress.com/">Perl 6 Advent Calendar</a></p>

<blockquote>
  <p>This one starts off with setting up Rakudo, so it requires very little prior knowledge.</p>
</blockquote>

<p><a href="http://sysadvent.blogspot.com/">SysAdvent</a></p>

<blockquote>
  <p>Tips for system administrators</p>
</blockquote>

<p>All of these have RSS feeds, so they'll be easy to follow.  Have fun!</p>

<p><em><a href="http://search.cpan.org/~mfollett/">Matt Follett</a> is a developer in the Informatics team at The Genome Center at Washington University School of Medicine, where he works on high-throughput DNA sequencing projects.  He is a graduate of the University of Missouri at Rolla, where he majored in Computer Science &amp; Computer Engineering.  He has worked for Monsanto, Boeing, and Beck Automation as a software engineer.  He was the head of the 2009 St. Louis BarCamp.  He currently resides in St. Louis, where he heads the local chapter of Perl Mongers.</em></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Christmas brings the RJBS Advent Calendar</title>
    <link rel="alternate" type="text/html" href="http://perlbuzz.com/2009/11/christmas-brings-the-rjbs-advent-calendar.html" />
    <id>tag:perlbuzz.com,2009://1.749</id>

    <published>2009-11-25T04:05:36Z</published>
    <updated>2009-11-25T04:10:28Z</updated>

    <summary>By Ricardo Signes Back when I first started learning Perl 5, I was excited to find the Perl Advent Calendar. It was a series of 24 or so short articles about useful Perl modules or techniques, with one new entry...</summary>
    <author>
        <name>Andy Lester</name>
        <uri>http://theworkinggeek.com/</uri>
    </author>
    
        <category term="CPAN" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://perlbuzz.com/">
        <![CDATA[<p><em>By Ricardo Signes</em></p>

<p>Back when I first started learning Perl 5, I was excited to find the <a href="http://perladvent.pm.org/archives.html">Perl
 Advent Calendar</a>.  It was a series of
 24 or so short articles about useful Perl modules or techniques, with one new
 entry each day leading up to Christmas.  A few years later, the Catalyst crew
 started the <a href="http://www.catalystframework.org/calendar/2005">Catalyst Advent
 Calendar</a>.  I always liked
 the Perl Advent Calendars, and kept meaning to contribute.  Every time,
 though there were too many things I'd want to write about -- and mostly they
 were my own code, so I felt sort of smarmy and self-promoting and never did
 it.</p>

<p>Finally, though, I'm glad to say I have tackled those feelings.  I will not
 shy away from showing off my own code, and I will not worry about having to
 choose just one thing.  This year, I will publish the <a href="http://advent.rjbs.manxome.org/">RJBS Advent
 Calendar</a>, 24+ full days of cool, useful, or
 stupid code that I have written and given as a gift to the rest of the CPAN
 community.</p>

<p>I've had a lot of fun working on this project, and it's helped me find and
 fix a number of little bugs or imperfections in the software I'll be talking
 about.</p>

<p>The first door opens in seven days.  I hope it's as fun to read as it was to
 write.  No returns will be accepted.  Approximate actual cash value: $0.02</p>

<p><em>Ricardo Signes has written <a href="http://search.cpan.org/~rjbs/">tons of modules on the CPAN</a>, including <a href="http://search.cpan.org/dist/Dist-Zilla/">Dist::Zilla</a>, the heir apparent to Module::Starter.  He is also a total sweetheart, and has a fuzzy head.</em></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Perl gets modern community blogging platform at blogs.perl.org</title>
    <link rel="alternate" type="text/html" href="http://perlbuzz.com/2009/11/perl-gets-modern-community-blogging-platform-at-blogsperlorg.html" />
    <id>tag:perlbuzz.com,2009://1.748</id>

    <published>2009-11-20T17:02:03Z</published>
    <updated>2009-11-20T17:11:27Z</updated>

    <summary>In a move of unparalleled beauty, Dave Cross and Aaron Crane have announced blogs.perl.org, a modern blogging platform for the Perl community. Go look. Enjoy the non-ugly color scheme. Marvel at the code syntax highlighting and ability to embed images....</summary>
    <author>
        <name>Andy Lester</name>
        <uri>http://theworkinggeek.com/</uri>
    </author>
    
        <category term="Community" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://perlbuzz.com/">
        <![CDATA[<p>In a move of unparalleled beauty, Dave Cross and Aaron Crane have announced <a href="http://blogs.perl.org">blogs.perl.org</a>, a modern blogging platform for the Perl community.</p>

<p>Go look.  Enjoy the non-ugly color scheme.  Marvel at the code syntax highlighting and ability to embed images.  Navigate posts using thoughtful categories.</p>

<p>A million thanks to Dave and Aaron for putting this together, and to <a href="http://sixapart.com">Six Apart</a> for the design. Links to feeds will be going up here on Perlbuzz as soon as I have time.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Perlbuzz news roundup for 2009-11-17</title>
    <link rel="alternate" type="text/html" href="http://perlbuzz.com/2009/11/perlbuzz-news-roundup-for-2009-11-17.html" />
    <id>tag:perlbuzz.com,2009://1.746</id>

    <published>2009-11-17T20:34:02Z</published>
    <updated>2009-11-17T20:34:37Z</updated>

    <summary> These links are collected from the Perlbuzz Twitter feed. If you have suggestions for news bits, please mail me at andy@perlbuzz.com. Pod::Simple 3.09 hits the CPAN (justatheory.com) Strawberry Perl and the nightmare of installing Padre (use.perl.org) A busy month...</summary>
    <author>
        <name>Andy Lester</name>
        <uri>http://theworkinggeek.com/</uri>
    </author>
    
        <category term="CPAN" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Code craft" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Community" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Perl 5" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Perl 6" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://perlbuzz.com/">
        <![CDATA[<p>
These links are collected from the
<a href="http://twitter.com/perlbuzz">Perlbuzz Twitter feed</a>.
If you have suggestions for news bits, please mail me at
<a href="mailto:andy@perlbuzz.com">andy@perlbuzz.com</a>.
</p>

<ul>

<li>Pod::Simple 3.09 hits the CPAN (<a href="http://justatheory.com/computers/programming/perl/modules/new-pod-simple.html">justatheory.com</a>)</li>
<li>Strawberry Perl and the nightmare of installing Padre (<a href="http://use.perl.org/~bart/journal/39812">use.perl.org</a>)</li>
<li>A busy month for masak in Perl 6 (<a href="http://use.perl.org/~masak/journal/39817">use.perl.org</a>)</li>
<li>A productive week in Rakudo-land (<a href="http://use.perl.org/~JonathanWorthington/journal/39829">use.perl.org</a>)</li>
<li>Perl one-liners explained part III: Calculations (<a href="http://www.catonmat.net/blog/perl-one-liners-explained-part-three/">catonmat.net</a>)</li>
<li>Handy one-liner to lowercase all filenames in a directory: ls | perl -lne'$x=lc;print qq{mv $_ $x}' | sh -x</li>
<li>Use CPAN's toolchain to improve your code (<a href="http://use.perl.org/~tomhukins/journal/39835">use.perl.org</a>)</li>
<li>Future Perl snuck up on me (<a href="http://headrattle.blogspot.com/2009/11/future-perl-snuck-up-on-me.html">headrattle.blogspot.com</a>)</li>
<li>Find the stupid bug in my progress indicator: say "$n so far" if ( $n % 100000 )";</li>
<li>I maeked u a shell: lolshell, written in Perl 6 (<a href="http://theintersect.org/2009/i-maeked-u-a-shell/">theintersect.org</a>)</li>
<li>The horrible bug your command line Perl program probably has (<a href="http://perlbuzz.com/2009/11/the-horrible-bug-your-command-line-perl-program-probably-has.html">perlbuzz.com</a>)</li>
<li>Frozen Perl 2010 looking for speakers (<a href="http://news.perlfoundation.org/2009/11/frozen_perl_call_for_speakers.html">news.perlfoundation.org</a>)</li>
<li>apache2rest is a new framework for REST APIs under mod_perl2 (<a href="http://code.google.com/p/apache2rest/">code.google.com</a>)</li>
<li>Putting MySQL on a ramdisk to speed up tests (<a href="http://use.perl.org/~Ovid/journal/39871">use.perl.org</a>)</li>
<li>Generating Feedburner graphs (<a href="http://www.catonmat.net/blog/generating-feedburner-graphs/">catonmat.net</a>)</li>
</ul>
]]>
        

    </content>
</entry>

<entry>
    <title>perl.org gets a beautiful upgrade</title>
    <link rel="alternate" type="text/html" href="http://perlbuzz.com/2009/11/perlorg-gets-a-beautiful-upgrade.html" />
    <id>tag:perlbuzz.com,2009://1.745</id>

    <published>2009-11-12T20:27:16Z</published>
    <updated>2009-11-12T20:30:33Z</updated>

    <summary>Robert Spier writes To match the massive advances in Perl over the last few years, www.perl.org has been brought into the modern era. www.perl.org has been completely redesigned, making it clearer and easier to use. All the content has been...</summary>
    <author>
        <name>Andy Lester</name>
        <uri>http://theworkinggeek.com/</uri>
    </author>
    
        <category term="Advocacy" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Community" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Perl 5" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://perlbuzz.com/">
        <![CDATA[<p>Robert Spier writes</p>

<blockquote>
  <p>To match the massive advances in Perl over the last few years, www.perl.org has been brought into the modern era. <a href="http://www.perl.org">www.perl.org</a> has been completely redesigned, making it clearer and easier to use.  All the content has been reviewed and brought up-to-date to provide links and other helpful resources for both new and experienced Perl programmers.</p>
  
  <p>Thanks to <a href="http://www.foxtons.co.uk">www.foxtons.co.uk</a> for donating time from Leo Lapworth, Stephen Morgan, and Cameron Richmond!</p>
</blockquote>

<p>Holy cow is it pretty.  Thanks to those who made it happen!  The <a href="http://www.perl.org/get.html">download page</a> is especially handy.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>The horrible bug your command line Perl program probably has</title>
    <link rel="alternate" type="text/html" href="http://perlbuzz.com/2009/11/the-horrible-bug-your-command-line-perl-program-probably-has.html" />
    <id>tag:perlbuzz.com,2009://1.744</id>

    <published>2009-11-09T15:10:51Z</published>
    <updated>2009-11-09T16:20:58Z</updated>

    <summary><![CDATA[Most programmers know you have to check return values from system functions. Unless you're just starting out as a programmer, you know that this is bad: open( my $fh, '&lt;', 'something.txt' ); while ( my $line = &lt;$fh&gt; ) {...]]></summary>
    <author>
        <name>Andy Lester</name>
        <uri>http://theworkinggeek.com/</uri>
    </author>
    
        <category term="Code craft" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://perlbuzz.com/">
        <![CDATA[<p>Most programmers know you have to check return values from system<br />
functions.  Unless you're just starting out as a programmer, you<br />
know that this is bad:</p>



<pre>
open( my $fh, '&lt;', 'something.txt' );
while ( my $line = &lt;$fh&gt; ) {
    # do something with the input
}
</pre>



<p>If that <tt>open</tt> fails the program continues on.  The call to<br />
<tt>readline</tt> will fail, return <tt>undef</tt> as if we're at<br />
the end of the file, and the user will be none the wiser.  If you<br />
have <tt>use warnings</tt> on, you'll get a "readline() on closed<br />
filehandle", but that's not much help when you should be dying.</p>

<p>Instead, you should be opening your file like this:</p>



<pre>
my $filename = 'something.txt';
open( my $fh, '&lt;', $filename ) or die &quot;Can't open $filename: $!&quot;;
</pre>



<p>This way, your user gets a useful error message if something goes<br />
wrong, but more importantly, the program doesn't continue as if<br />
nothing is wrong, potentially doing what it should not.</p>

<h2>GetOptions needs checking, too</h2>

<p>Unfortunately, I see programs where otherwise-sensible programmers<br />
ignore the return code of GetOptions.</p>



<pre>
use Getopt::Long;
GetOptions(
    'n=i' =&gt; \my $count,
);
# Do something that uses $count
print &quot;Processing complete!\n&quot;;
</pre>



<p>There are any number of ways the user can call this program incorrectly:</p>



<pre>
$ perl foo -n
Option n requires an argument
Processing complete!

$ perl foo -n=five
Value &quot;five&quot; invalid for option n (number expected)
Processing complete!

$ perl foo -m=12
Unknown option: m
Processing complete!
</pre>



<p>In all three of these cases, the user made a mistake, but the program<br />
lets it slide without a mention.  The user's going to be disappointed<br />
with the results.</p>

<p>The solution is simple: Always check the results of <tt>GetOptions()</tt>.<br />
The easiest way is to task <tt>&amp;&amp; exit(1)</tt> after the call:</p>



<pre>
use Getopt::Long;
GetOptions(
    'n=i' =&gt; \my $count,
) or exit(1);
</pre>



<p>It's simple, effective, and prevents unexpected sorrow.</p>]]>
        
    </content>
</entry>

</feed>
