<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0">
    <title>Modern Perl Programming — comments</title>
    <id>tag:www.modernperlbooks.com,2011-06-07:/mt//comments</id>
    <updated>2009-01-25T01:56:02Z</updated>
    <link rel="self" href="/mt/comments.xml" />
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.38</generator>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.544-comment:779140</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.544-comment:768357" type="text/html" href="/mt/2013/06/continuations-and-the-web.html#comment-768357"/>


    <link rel="alternate" type="text/html" href="/mt/2013/06/continuations-and-the-web.html#comment-779140" />
    <title>Re: Continuations and the Web — From: chromatic</title>
    <author>
        <name>chromatic</name>
        <uri>http://www.wgz.org/~chromatic</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.wgz.org/~chromatic">
        <![CDATA[<p>I haven't used it for anything serious, so I don't have much to say. It did seem worthwhile last time I looked at it though.</p>]]>
    </content>
    <published>2013-06-12T01:01:54Z</published>
    <updated>2013-06-12T01:01:54Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.544-comment:768357</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.544" type="text/html" href="/mt/2013/06/continuations-and-the-web.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/06/continuations-and-the-web.html#comment-768357" />
    <title>Re: Continuations and the Web — From: Sam H.</title>
    <author>
        <name>Sam H.</name>
        
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>How do you feel about <a href="http://continuity.tlt42.org/" rel="nofollow">Continuity</a>?</p>]]>
    </content>
    <published>2013-06-11T16:00:05Z</published>
    <updated>2013-06-11T16:00:05Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.542-comment:383568</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.542-comment:383460" type="text/html" href="/mt/2013/05/ejecting-cgipm-from-the-perl-core.html#comment-383460"/>


    <link rel="alternate" type="text/html" href="/mt/2013/05/ejecting-cgipm-from-the-perl-core.html#comment-383568" />
    <title>Re: Ejecting CGI.pm From the Perl Core — From: chromatic</title>
    <author>
        <name>chromatic</name>
        <uri>http://www.wgz.org/~chromatic</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.wgz.org/~chromatic">
        <![CDATA[<p>I agree that that's no fun, but p5p's not willing to pay the price for that organization's problems. It's difficult enough to maintain the existing core. The maintenance burden of code that p5p can't even see is too high.</p>]]>
    </content>
    <published>2013-05-30T16:26:16Z</published>
    <updated>2013-05-30T16:26:16Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.542-comment:383460</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.542-comment:343939" type="text/html" href="/mt/2013/05/ejecting-cgipm-from-the-perl-core.html#comment-343939"/>


    <link rel="alternate" type="text/html" href="/mt/2013/05/ejecting-cgipm-from-the-perl-core.html#comment-383460" />
    <title>Re: Ejecting CGI.pm From the Perl Core — From: David Pottage</title>
    <author>
        <name>David Pottage</name>
        <uri>http://www.perlmonks.org/?node_id=869476</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.perlmonks.org/?node_id=869476">
        <![CDATA[<p>Who will upgrade to perl 5.20 without installing CGI from CPAN or the like?</p>

<p>Perhaps in about 2 years time when Debian Jessie becomes stable, with perl 5.20 as the system perl, but working under a grumpy sysadmin who refuses to install any Debian or CPAN package without a request in triplicate and a 6 month evaluation period.</p>

<p>Don't laugh, admins like that exist, and it is no fun trying to get any work done on a system they control.<br />
</p>]]>
    </content>
    <published>2013-05-30T16:15:30Z</published>
    <updated>2013-05-30T16:15:30Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.542-comment:344043</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.542-comment:341303" type="text/html" href="/mt/2013/05/ejecting-cgipm-from-the-perl-core.html#comment-341303"/>


    <link rel="alternate" type="text/html" href="/mt/2013/05/ejecting-cgipm-from-the-perl-core.html#comment-344043" />
    <title>Re: Ejecting CGI.pm From the Perl Core — From: chromatic</title>
    <author>
        <name>chromatic</name>
        <uri>http://www.wgz.org/~chromatic</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.wgz.org/~chromatic">
        <![CDATA[<p>Without a small army of new volunteers appearing to do the hard work of maintaining Perl 5, I suspect we get to choose between two alternatives:</p>

<ul>

<p><li>reduce the maintenance burden of the core to fit the available volunteer effort</li></p>

<p><li>reduce the effort and quality put into any specific piece of the code to match the increased size of the code</li></p>

</ul>

<p>In other words, the decision is very likely between yearly releases with bugfixes and optimizations and improvements or keeping things like CGI.pm as a core library. Even "core library" is a misnomer, as it's been a dual-lived module for a long time. At least with the yearly releases, people who don't use the CPAN will <em>eventually</em> get bug fixes and improvements to CGI.pm every five years or so, when their administrators get around to upgrading, but is that <em>really</em> the dominant use of Perl that the p5p development process should optimize itself for?</p>]]>
    </content>
    <published>2013-05-27T15:38:01Z</published>
    <updated>2013-05-27T15:38:01Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.542-comment:343977</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.542-comment:343871" type="text/html" href="/mt/2013/05/ejecting-cgipm-from-the-perl-core.html#comment-343871"/>


    <link rel="alternate" type="text/html" href="/mt/2013/05/ejecting-cgipm-from-the-perl-core.html#comment-343977" />
    <title>Re: Ejecting CGI.pm From the Perl Core — From: chromatic</title>
    <author>
        <name>chromatic</name>
        <uri>http://www.wgz.org/~chromatic</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.wgz.org/~chromatic">
        <![CDATA[<p>I meant among the participants in the p5p discussion.</p>]]>
    </content>
    <published>2013-05-27T15:27:20Z</published>
    <updated>2013-05-27T15:27:20Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.542-comment:343939</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.542-comment:343208" type="text/html" href="/mt/2013/05/ejecting-cgipm-from-the-perl-core.html#comment-343208"/>


    <link rel="alternate" type="text/html" href="/mt/2013/05/ejecting-cgipm-from-the-perl-core.html#comment-343939" />
    <title>Re: Ejecting CGI.pm From the Perl Core — From: chromatic</title>
    <author>
        <name>chromatic</name>
        <uri>http://www.wgz.org/~chromatic</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.wgz.org/~chromatic">
        <![CDATA[<p>How will it cause problems? Who's upgrading to Perl 5.20 and refusing to install CGI.pm?</p>]]>
    </content>
    <published>2013-05-27T15:22:31Z</published>
    <updated>2013-05-27T15:22:31Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.542-comment:343871</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.542" type="text/html" href="/mt/2013/05/ejecting-cgipm-from-the-perl-core.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/05/ejecting-cgipm-from-the-perl-core.html#comment-343871" />
    <title>Re: Ejecting CGI.pm From the Perl Core — From: LpSolit</title>
    <author>
        <name>LpSolit</name>
        <uri>https://lpsolit.wordpress.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="https://lpsolit.wordpress.com">
        <![CDATA[<p>It's wrong to say that no one uses CGI.pm. Bugzilla still uses it.</p>]]>
    </content>
    <published>2013-05-27T15:12:41Z</published>
    <updated>2013-05-27T15:12:41Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.542-comment:343208</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.542" type="text/html" href="/mt/2013/05/ejecting-cgipm-from-the-perl-core.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/05/ejecting-cgipm-from-the-perl-core.html#comment-343208" />
    <title>Re: Ejecting CGI.pm From the Perl Core — From: Andrew DeFaria</title>
    <author>
        <name>Andrew DeFaria</name>
        <uri>http://defaria.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://defaria.com">
        <![CDATA[<p>If you really think that "nobody uses CGI.pm" then you need to get out more often. It's used everywhere as far as I can see. Removing this will cause many problems.</p>]]>
    </content>
    <published>2013-05-27T13:51:52Z</published>
    <updated>2013-05-27T13:51:52Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.542-comment:341303</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.542" type="text/html" href="/mt/2013/05/ejecting-cgipm-from-the-perl-core.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/05/ejecting-cgipm-from-the-perl-core.html#comment-341303" />
    <title>Re: Ejecting CGI.pm From the Perl Core — From: David Pottage</title>
    <author>
        <name>David Pottage</name>
        <uri>http://www.perlmonks.org/?node_id=869476</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.perlmonks.org/?node_id=869476">
        <![CDATA[<p>If we remove CGI, then we should replace it with something better.</p>

<p>I agree that CGI has not been best practice for a long time, but it was best practice for a while because the alternative was to parse and http queries and generate html entirely by hand.</p>

<p>Most of have worked in environments where external modules are forbidden, either because management is excessively risk adverse, or because the hosting company charges extra for installing non core modules.</p>

<p>Much as we in the perl community hate these backward working practices that don't embrace CPAN, they continue to exist and won't go away. We need to support those unfortunate users who have to work within such constraints.</p>

<p>For this reason, I think that if CGI.pm is removed, we ought to replace it with something else that is lightweight and represents best practice. My vote would be for Plack as it is small, has few dependencies, and is easy to enable in Apache (via Plack::Handler::Apache2::Registry). Idealy we should also add a templating module as well so that Plack users don't have to fill their pgsi with big blocks of sprintf to generate their html.<br />
</p>]]>
    </content>
    <published>2013-05-27T10:10:22Z</published>
    <updated>2013-05-27T10:10:22Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.542-comment:331339</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.542-comment:331310" type="text/html" href="/mt/2013/05/ejecting-cgipm-from-the-perl-core.html#comment-331310"/>


    <link rel="alternate" type="text/html" href="/mt/2013/05/ejecting-cgipm-from-the-perl-core.html#comment-331339" />
    <title>Re: Ejecting CGI.pm From the Perl Core — From: chromatic</title>
    <author>
        <name>chromatic</name>
        <uri>http://www.wgz.org/~chromatic</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.wgz.org/~chromatic">
        <![CDATA[<p>I'm curious—how did they manage not to write bugs themselves? If you're rewriting libraries....</p>]]>
    </content>
    <published>2013-05-26T03:03:25Z</published>
    <updated>2013-05-26T03:03:25Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.542-comment:331310</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.542" type="text/html" href="/mt/2013/05/ejecting-cgipm-from-the-perl-core.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/05/ejecting-cgipm-from-the-perl-core.html#comment-331310" />
    <title>Re: Ejecting CGI.pm From the Perl Core — From: scruss</title>
    <author>
        <name>scruss</name>
        <uri>http://scruss.com/blog</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://scruss.com/blog">
        <![CDATA[<p>Well, it won't affect a financial house I worked at, then. Until far more recently than you could imagine, CGI.pm wasn't allowed because “it was too big not to have bugs in it”. Yes, we were parsing $ENV{'QUERY_STRING'} well into this century …</p>]]>
    </content>
    <published>2013-05-26T02:59:40Z</published>
    <updated>2013-05-26T02:59:40Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.540-comment:180190</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.540" type="text/html" href="/mt/2013/05/running-named-perl-tests-from-prove.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/05/running-named-perl-tests-from-prove.html#comment-180190" />
    <title>Re: Running Named Perl Tests from Prove — From: Tom Legrady</title>
    <author>
        <name>Tom Legrady</name>
        <uri>http://which-dwarf-are-you.blogspot.ca/</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://which-dwarf-are-you.blogspot.ca/">
        <![CDATA[<p>I was thinking the same thing when you wrote part 1, but couldn't invoke the function by string name. __PACKAGE__->can was somewhat more complexity than I was prepared to devote to it at the time. ( ie, I didn't think of that)</p>

<p>The only problem is having this over and over in test files: "Boilerplate Considered Harmful". How about moving this into Test::Simple or Test::More, or a module of its own, Test::Some.</p>

<p>I would suggest exporting a single routine, run_some(), which contains the innards of the if() block. Then all a user needs do is to begin main with</p>

<pre>
     return &run_some if @_;
</pre>

<p>or the more verbose but digestable</p>

<pre>
     my @args = @_;
     return run_some( @args ) if @args;
</pre>

<p>Of course, that means main() is a boring list of tests to run. Test::Some could supply that main() if it was requested to in the <em>use</em> line. The user would only need to invoke <em>main()</em>, passing an arrayref of the test file names, in the order they should be run, followed by \@ARGV. </p>]]>
    </content>
    <published>2013-05-13T14:27:16Z</published>
    <updated>2013-05-13T14:27:16Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.538-comment:77626</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.538" type="text/html" href="/mt/2013/04/seo-tips-for-perl-advocacy.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/04/seo-tips-for-perl-advocacy.html#comment-77626" />
    <title>Re: SEO Tips for Perl Advocacy — From: Richard Foley</title>
    <author>
        <name>Richard Foley</name>
        <uri>http://www.rfi.net</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.rfi.net">
        <![CDATA[<p>Good job.</p>]]>
    </content>
    <published>2013-04-29T20:41:02Z</published>
    <updated>2013-04-29T20:41:02Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.537-comment:69190</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.537" type="text/html" href="/mt/2013/04/perl-web-pages-and-search-engines.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/04/perl-web-pages-and-search-engines.html#comment-69190" />
    <title>Re: Perl Web Pages and Search Engines — From: Richard Foley</title>
    <author>
        <name>Richard Foley</name>
        <uri>http://www.rfi.net</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.rfi.net">
        <![CDATA[<p>Too many people appear unaware of the need to promote a good product, mistakingly believing that "build and they will come" operates for the Perl programming language, possibly the best programming language in the world, just because we think so. We need to be more pro-active than that, which is what Propaganda.pm is actually all about. </p>

<p>Your comment is so true: "having useful information is important, but presenting that information in a way that's easy for machines to interpret is just as important".</p>]]>
    </content>
    <published>2013-04-28T09:59:50Z</published>
    <updated>2013-04-28T09:59:50Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.537-comment:68736</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.537" type="text/html" href="/mt/2013/04/perl-web-pages-and-search-engines.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/04/perl-web-pages-and-search-engines.html#comment-68736" />
    <title>Re: Perl Web Pages and Search Engines — From: TheWhip</title>
    <author>
        <name>TheWhip</name>
        
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>I think trivialities are no problem for <a href="http://propaganda.pm" rel="nofollow">Propaganda.pm</a><br />
</p>]]>
    </content>
    <published>2013-04-28T08:01:04Z</published>
    <updated>2013-04-28T08:01:04Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.531-comment:20053</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.531" type="text/html" href="/mt/2013/02/debugging-with-dynamic-environment-variables.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/02/debugging-with-dynamic-environment-variables.html#comment-20053" />
    <title>Re: Debugging with Dynamic Environment Variables — From: Alex Beamish</title>
    <author>
        <name>Alex Beamish</name>
        <uri>http://perlmonks.org/?node_id=131279</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://perlmonks.org/?node_id=131279">
        <![CDATA[<p>Looks like you might have cut and pasted your code example incorrectly -- the tipoff is that the $sql parameter isn't used in make_sth method.</p>

<p>The $sql is what should be passed to DBI's prepare method, not $sth.</p>]]>
    </content>
    <published>2013-03-21T13:39:14Z</published>
    <updated>2013-03-21T13:39:14Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.533-comment:20034</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.533" type="text/html" href="/mt/2013/03/upgrade-in-place-with-perlbrew.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/03/upgrade-in-place-with-perlbrew.html#comment-20034" />
    <title>Re: Upgrade in Place with Perlbrew — From: Przemek Wesolek</title>
    <author>
        <name>Przemek Wesolek</name>
        <uri>http://tu.wesolek.net</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://tu.wesolek.net">
        <![CDATA[<p>OK, "perlbrew install 5.16.1 --as 5.16_threads -Dusethreads --force" fixed this. A ticket has already been open: <a href="https://github.com/gugod/App-perlbrew/issues/294" rel="nofollow">https://github.com/gugod/App-perlbrew/issues/294</a></p>]]>
    </content>
    <published>2013-03-21T11:54:15Z</published>
    <updated>2013-03-21T11:54:15Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.533-comment:19500</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.533" type="text/html" href="/mt/2013/03/upgrade-in-place-with-perlbrew.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/03/upgrade-in-place-with-perlbrew.html#comment-19500" />
    <title>Re: Upgrade in Place with Perlbrew — From: Przemek Wesolek</title>
    <author>
        <name>Przemek Wesolek</name>
        <uri>http://tu.wesolek.net</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://tu.wesolek.net">
        <![CDATA[<p>I've just been hit by the fact that upgrade-perl ignores flags set during original installation, e.g. resulting in a change of archname:<br />
<pre><br />
$ perlbrew install 5.16.1 --as 5.16_threads -Dusethreads<br />
$ perlbrew upgrade-perl<br />
</pre><br />
<pre><br />
$ perl5.16.1 -E 'say for map m|5.16_threads/lib/(.*)|, @INC'<br />
site_perl/5.16.1/i686-linux-thread-multi<br />
site_perl/5.16.1<br />
5.16.1/i686-linux-thread-multi<br />
5.16.1<br />
</pre><br />
<pre><br />
$ perl5.16.3 -E 'say for map m|5.16_threads/lib/(.*)|, @INC'<br />
site_perl/5.16.3/i686-linux<br />
site_perl/5.16.3<br />
5.16.3/i686-linux<br />
5.16.3<br />
site_perl/5.16.1<br />
site_perl<br />
</pre></p>

<p>As you can see, my precious site_perl/5.16.1/i686-linux-thread-multi is gone...</p>]]>
    </content>
    <published>2013-03-20T13:31:45Z</published>
    <updated>2013-03-20T13:31:45Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.533-comment:17628</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.533" type="text/html" href="/mt/2013/03/upgrade-in-place-with-perlbrew.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/03/upgrade-in-place-with-perlbrew.html#comment-17628" />
    <title>Re: Upgrade in Place with Perlbrew — From: Amitai Schlair</title>
    <author>
        <name>Amitai Schlair</name>
        <uri>http://www.schmonz.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.schmonz.com">
        <![CDATA[<p>If the bits of which you need to manage your own installations are not exclusively Perly ones (mine never quite are), allow me to recommend pkgsrc, a cross-platform root-optional source-based package manager. Here's <a href="http://www.schmonz.com/2013/01/22/codemash-2013-your-dev-toolbox-everywhere" rel="nofollow">a recent lightning talk I gave about it</a> for a similar use case.</p>]]>
    </content>
    <published>2013-03-13T03:13:41Z</published>
    <updated>2013-03-13T03:13:41Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.532-comment:17036</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.532" type="text/html" href="/mt/2013/03/clean-your-room.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/03/clean-your-room.html#comment-17036" />
    <title>Re: Clean Your Room — From: perlpilot</title>
    <author>
        <name>perlpilot</name>
        
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>The first part of your post reminded <em>me</em> of this recent talk by Martin Fowler.  Particularly the graph on good/bad design.</p>

<p><a href="http://www.youtube.com/watch?feature=player_detailpage&v=8kotnF6hfd8#t=2693s" rel="nofollow">http://www.youtube.com/watch?feature=player_detailpage&v=8kotnF6hfd8#t=2693s</a></p>]]>
    </content>
    <published>2013-03-05T15:04:01Z</published>
    <updated>2013-03-05T15:04:01Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.531-comment:16783</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.531" type="text/html" href="/mt/2013/02/debugging-with-dynamic-environment-variables.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/02/debugging-with-dynamic-environment-variables.html#comment-16783" />
    <title>Re: Debugging with Dynamic Environment Variables — From: nnutter</title>
    <author>
        <name>nnutter</name>
        <uri>http://nnutter.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://nnutter.com">
        <![CDATA[<p><i>Yes, I should run the debugger and figure out an easy way to toggle it to break on the given line, but I'm insufficiently lazy for that. Yet.</i></p>

<p>Couldn't you just change your diag line to instead be:</p>

<pre>$DB::single = $ENV{DD_DB};</pre>

<p>Then still do your local $ENV{DD_DB} trick? I usually make a variable in the $DB namespace, e.g.:</p>

<pre>$DB::single = $DB::stop;</pre>

<p>I'm not sure local will be very different but is an interesting idea.</p>]]>
    </content>
    <published>2013-03-02T04:20:21Z</published>
    <updated>2013-03-02T04:20:21Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.531-comment:16728</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.531" type="text/html" href="/mt/2013/02/debugging-with-dynamic-environment-variables.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/02/debugging-with-dynamic-environment-variables.html#comment-16728" />
    <title>Re: Debugging with Dynamic Environment Variables — From: Jamess</title>
    <author>
        <name>Jamess</name>
        
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>I find that <a href='https://metacpan.org/module/JJORE/Enbugger-2.013/lib/Enbugger.pod' rel="nofollow">Enbugger</a> works rather well for that type of debugging.</p>]]>
    </content>
    <published>2013-03-01T06:03:02Z</published>
    <updated>2013-03-01T06:03:02Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.530-comment:16515</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.530" type="text/html" href="/mt/2013/02/unicode-versus-passwords-versus-digests.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/02/unicode-versus-passwords-versus-digests.html#comment-16515" />
    <title>Re: Unicode versus Passwords versus Digests — From: Stephen</title>
    <author>
        <name>Stephen</name>
        <uri>http://popcorn.cx/</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://popcorn.cx/">
        <![CDATA[<p>While Digest::SHA1 doesn't mention unicode, the POD for Digest::SHA does. </p>

<p>What it says matches my understanding: that hash algorithms operate on bits which are easy to get from bytes. But if you have text, then you need to encode it as bytes before you hash. The hashing should be treated like another output.</p>

<p>I'm wondering why you opted for doing the hashing in the database. I would have opted for the other way, if only to minimise the layers that have access to the raw password.</p>

<p>On further thought I would strongly disagree with hashing in the database because your application now relies on an assumption that you don't actually know. What if that assumption changes with database versions? Or maybe the assumption is actually being made inside DBI or DBD::Pg?</p>

<p>A final comment is that at my work we had some bugs caused by differences in date manipulations between the database and perl. So it always pays to be extra careful when you have two different layers attempting to perform the same action.</p>]]>
    </content>
    <published>2013-02-24T04:40:16Z</published>
    <updated>2013-02-24T04:40:16Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.529-comment:11122</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.529" type="text/html" href="/mt/2013/02/practical-questions-about-marketing-announcements.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/02/practical-questions-about-marketing-announcements.html#comment-11122" />
    <title>Re: Practical Questions about Marketing Announcements — From: Matt S Trout (mst)</title>
    <author>
        <name>Matt S Trout (mst)</name>
        <uri>http://shadow.cat/blog/matt-s-trout/</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://shadow.cat/blog/matt-s-trout/">
        <![CDATA[<p>Excellent post outlining what are the prerequisites for such a proposal to be viable.</p>

<p>I believe that the 'Pumpkin Perl' proposal meets every requirement you've given (with the possible exception of "why aren't you using a bigger cluebat", though "because I think I can get permission to wield this one" is the answer to that, as to most "why not name X?" questions).</p>

<p>The <a href="http://shadow.cat/blog/matt-s-trout/pumpkin-perl-redux/" rel="nofollow">breakdown of the what, the why and the who, and a run through of your checklist</a> is up on my blog.</p>]]>
    </content>
    <published>2013-02-17T03:37:26Z</published>
    <updated>2013-02-17T03:37:26Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.529-comment:11120</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.529" type="text/html" href="/mt/2013/02/practical-questions-about-marketing-announcements.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/02/practical-questions-about-marketing-announcements.html#comment-11120" />
    <title>Re: Practical Questions about Marketing Announcements — From: David Golden</title>
    <author>
        <name>David Golden</name>
        <uri>http://www.dagolden.com/</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.dagolden.com/">
        <![CDATA[<p>For kicks, I revived the strictperl patch and put it in a branch of blead along with enough fixes to at least complete "make strictperl".  Getting to "test_prep" will be another bit of slog.  All told, however, it wasn't really that much work.</p>

<p><a href="http://perl5.git.perl.org/perl.git/shortlog/refs/heads/dagolden/revive-strictperl" rel="nofollow">http://perl5.git.perl.org/perl.git/shortlog/refs/heads/dagolden/revive-strictperl</a></p>

<p>Note to readers: I'm not advocating this as a default anytime soon.  For the moment, I just want to use it as a tool to explore what in the Perl core isn't strict-friendly, so that sometime in the future, that decision is at least an option.</p>]]>
    </content>
    <published>2013-02-17T02:58:13Z</published>
    <updated>2013-02-17T02:58:13Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.528-comment:9989</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.528" type="text/html" href="/mt/2013/02/goodnight-parrot.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/02/goodnight-parrot.html#comment-9989" />
    <title>Re: Goodnight, Parrot — From: Larry Clapp</title>
    <author>
        <name>Larry Clapp</name>
        <uri>http://theclapp.org/mt-blog/</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://theclapp.org/mt-blog/">
        <![CDATA[<p>I have to admit, the more I read about Perl 6 / Parrot / Rakudo, the happier I am to've heard about Go.</p>]]>
    </content>
    <published>2013-02-12T15:29:59Z</published>
    <updated>2013-02-12T15:29:59Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.525-comment:7974</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.525-comment:7169" type="text/html" href="/mt/2013/01/why-unicode-normalization-matters.html#comment-7169"/>


    <link rel="alternate" type="text/html" href="/mt/2013/01/why-unicode-normalization-matters.html#comment-7974" />
    <title>Re: Why Unicode Normalization Matters — From: chromatic</title>
    <author>
        <name>chromatic</name>
        <uri>http://www.wgz.org/~chromatic</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.wgz.org/~chromatic">
        <![CDATA[<p>We'd end up storing more data (searchable columns versus displayable columns), but that's an interesting approach. I can see its advantages.</p>]]>
    </content>
    <published>2013-02-03T02:07:49Z</published>
    <updated>2013-02-03T02:07:49Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.525-comment:7973</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.525-comment:7164" type="text/html" href="/mt/2013/01/why-unicode-normalization-matters.html#comment-7164"/>


    <link rel="alternate" type="text/html" href="/mt/2013/01/why-unicode-normalization-matters.html#comment-7973" />
    <title>Re: Why Unicode Normalization Matters — From: chromatic</title>
    <author>
        <name>chromatic</name>
        <uri>http://www.wgz.org/~chromatic</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.wgz.org/~chromatic">
        <![CDATA[<p>The search takes place in PostgreSQL, so I'd have to write a PL/Perl extension. That's possible, but I'd rather let the database do as much of the work as possible.</p>]]>
    </content>
    <published>2013-02-03T02:06:36Z</published>
    <updated>2013-02-03T02:06:36Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.525-comment:7739</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.525" type="text/html" href="/mt/2013/01/why-unicode-normalization-matters.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/01/why-unicode-normalization-matters.html#comment-7739" />
    <title>Re: Why Unicode Normalization Matters — From: nwellnhof</title>
    <author>
        <name>nwellnhof</name>
        
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>I'd also recommend NFKC for full text search. Another nice trick is to strip all combining marks after decomposition, so "naive" and "naïve" are equivalent. Anyone who's interested in a search engine that can do this out of the box might want to have a look at Apache Lucy:</p>

<p><a href="https://metacpan.org/module/LOGIE/Lucy-0.3.2/lib/Lucy/Analysis/Normalizer.pod" rel="nofollow">https://metacpan.org/module/LOGIE/Lucy-0.3.2/lib/Lucy/Analysis/Normalizer.pod</a><br />
</p>]]>
    </content>
    <published>2013-01-29T16:15:54Z</published>
    <updated>2013-01-29T16:15:54Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.525-comment:7356</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.525" type="text/html" href="/mt/2013/01/why-unicode-normalization-matters.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/01/why-unicode-normalization-matters.html#comment-7356" />
    <title>Re: Why Unicode Normalization Matters — From: npongratz</title>
    <author>
        <name>npongratz</name>
        
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>@vsespb: I believe you are correct depending on the data you are searching. The Unicode Consortium deems NFKC suitable for "loose matching ... These two latter normalization forms [NFKC/NFKD], however, do lose information and are thus most appropriate for a restricted domain such as identifiers." [0]</p>

<p>[0] <a href="http://www.unicode.org/faq/normalization.html" rel="nofollow">http://www.unicode.org/faq/normalization.html</a></p>]]>
    </content>
    <published>2013-01-28T15:43:03Z</published>
    <updated>2013-01-28T15:43:03Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.525-comment:7240</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.525" type="text/html" href="/mt/2013/01/why-unicode-normalization-matters.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/01/why-unicode-normalization-matters.html#comment-7240" />
    <title>Re: Why Unicode Normalization Matters — From: Allan Engelhardt</title>
    <author>
        <name>Allan Engelhardt</name>
        <uri>http://www.cybaea.net/</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.cybaea.net/">
        <![CDATA[<p>1. Search should normally use the NFK[CD] forms, as @wsespb points out. You want 'fish' to match "\x{fb01}sh" ("\N{LATIN SMALL LIGATURE FI}sh").</p>

<p>1b. Maybe you should use both. (Both 's' and "\x{1e69}" should probably match "\x{1e9b}\x{0323}", to use the Figure 9 example from the Unicode note.)</p>

<p>2. If somebody did a version of the NFK?[CD] routines that did not normalize singletons, then I would be happy. Never understood this bit. To my mind, \x{ef} and \x{69}\x{308} unambiguously carry the same _meaning_, just as surely as \N{ANGSTROM SIGN} and \N{KELVIN SIGN} has a different (more precise) meaning than \N{LATIN CAPITAL LETTER A WITH RING ABOVE} (Å) and \N{LATIN CAPITAL LETTER K} (K). For a scientific search capability I worked on we had to go through hoops like you wouldn’t believe….<br />
</p>]]>
    </content>
    <published>2013-01-27T14:35:05Z</published>
    <updated>2013-01-27T14:35:05Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.525-comment:7179</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.525" type="text/html" href="/mt/2013/01/why-unicode-normalization-matters.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/01/why-unicode-normalization-matters.html#comment-7179" />
    <title>Re: Why Unicode Normalization Matters — From: vsespb</title>
    <author>
        <name>vsespb</name>
        <uri>http://mt-aws.com/</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://mt-aws.com/">
        <![CDATA[<p>Having same problem with MacOSX HFS+ filenames, it's stored in NFD form, even more, some Apple's subset of this form. And in theory different MacOSX versions use different subset. (plus HFS+ is case insensetive by default but can be case sensetive)</p>

<p>There is a module for "Mac" normalization <a href="http://search.cpan.org/~tomita/Encode-UTF8Mac-0.03/lib/Unicode/Normalize/Mac.pm" rel="nofollow">http://search.cpan.org/~tomita/Encode-UTF8Mac-0.03/lib/Unicode/Normalize/Mac.pm</a></p>

<p>BTW Maybe for search it's better to use NFKC/D form ?</p>

<p>use Unicode::Normalize;<br />
use open qw/:std :utf8/;<br />
use utf8;<br />
print NFKC("₉") eq "9";<br />
print NFKC("⁹") eq "9";</p>

<p>(prints two true values).<br />
</p>]]>
    </content>
    <published>2013-01-26T18:19:14Z</published>
    <updated>2013-01-26T18:19:14Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.525-comment:7169</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.525" type="text/html" href="/mt/2013/01/why-unicode-normalization-matters.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/01/why-unicode-normalization-matters.html#comment-7169" />
    <title>Re: Why Unicode Normalization Matters — From: Humberto Massa</title>
    <author>
        <name>Humberto Massa</name>
        
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>I usually prefer the decomposed form for searchs, because you can strip all the \pM marks from the text, so naive would match naïve and vice-versa...</p>]]>
    </content>
    <published>2013-01-26T14:18:02Z</published>
    <updated>2013-01-26T14:18:02Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.525-comment:7164</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.525" type="text/html" href="/mt/2013/01/why-unicode-normalization-matters.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/01/why-unicode-normalization-matters.html#comment-7164" />
    <title>Re: Why Unicode Normalization Matters — From: Jakub Narębski</title>
    <author>
        <name>Jakub Narębski</name>
        
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>Why not use <a href="http://p3rl.org/Unicode::Collate" rel="nofollow">Unicode::Collate</a> or similar tool to perform Unicode-aware search and comparison?</p>

<p>This way you can, with appropriate comparison level, find "naïve" by searching for "naive".  Isn't that a win?</p>]]>
    </content>
    <published>2013-01-26T11:22:44Z</published>
    <updated>2013-01-26T11:22:44Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2012:/mt//1.515-comment:6769</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2012:/mt//1.515-comment:6768" type="text/html" href="/mt/2012/12/a-silly-moose-typo-and-perls-runtime-laxity.html#comment-6768"/>


    <link rel="alternate" type="text/html" href="/mt/2012/12/a-silly-moose-typo-and-perls-runtime-laxity.html#comment-6769" />
    <title>Re: A Silly Moose Typo and Perl&apos;s Runtime Laxity — From: chromatic</title>
    <author>
        <name>chromatic</name>
        <uri>http://www.wgz.org/~chromatic</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.wgz.org/~chromatic">
        <![CDATA[<p>It's personal preference. To me, the parentheses in latter example look like superfluous punctuation for its own sake. I understand that other people think it groups meta-attributes visually, but I don't see that when I look at it. I just see visual noise.</p>]]>
    </content>
    <published>2013-01-23T00:24:41Z</published>
    <updated>2013-01-23T00:24:41Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2012:/mt//1.515-comment:6768</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2012:/mt//1.515" type="text/html" href="/mt/2012/12/a-silly-moose-typo-and-perls-runtime-laxity.html"/>


    <link rel="alternate" type="text/html" href="/mt/2012/12/a-silly-moose-typo-and-perls-runtime-laxity.html#comment-6768" />
    <title>Re: A Silly Moose Typo and Perl&apos;s Runtime Laxity — From: kbenson</title>
    <author>
        <name>kbenson</name>
        
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>I'm wondering what benefit you see to:<br />
<pre><br />
has 'typo ', is => 'ro', default => 'oops';<br />
</pre></p>

<p>over some of the alternatives, such as</p>

<pre>
has typo => ( is => 'ro', default => 'oops' );
</pre>

<p>I don't have a lot of experience with Moose (unfortunately), but to me that small alteration looks like a win in both readability and automatic error detection (due to the parser, such as you mention).</p>]]>
    </content>
    <published>2013-01-23T00:21:51Z</published>
    <updated>2013-01-23T00:21:51Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.522-comment:6486</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.522" type="text/html" href="/mt/2013/01/how-forking-perl-5-could-work.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/01/how-forking-perl-5-could-work.html#comment-6486" />
    <title>Re: How Forking Perl 5 Could Work — From: Chip</title>
    <author>
        <name>Chip</name>
        
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>Well, you're obviously right in one sense with Perl 5 insofar as modules have gone beyond what perlapi and the language offer out of the box, thus giving us things that p5p shied away from (sometimes with good reason), and without having to recompile the core.</p>

<p>The bad thing is when the core has to change for other reasons, and those modules break.  Method::Signatures?  PadWalker?  EndOfScope?  Coro?  The core supports what these people wanted -- not always well, but enough -- and they made it happen.  And now they're effectively part of the language.  I wouldn't want Perl without M::S and Coro and AnyEvent and a dozen other modules that really are effectively Perl 5+.</p>

<p>But this comes at a price.  The failure modes are second class citizen status, bit rot (when the core devs don't care about breaking the modules), and fossilized internals (when they do).<br />
</p>]]>
    </content>
    <published>2013-01-22T03:21:49Z</published>
    <updated>2013-01-22T03:21:49Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.524-comment:6419</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.524-comment:6344" type="text/html" href="/mt/2013/01/wrapping-existing-code-without-anonymous-functions.html#comment-6344"/>


    <link rel="alternate" type="text/html" href="/mt/2013/01/wrapping-existing-code-without-anonymous-functions.html#comment-6419" />
    <title>Re: Wrapping Existing Code without Anonymous Functions — From: chromatic</title>
    <author>
        <name>chromatic</name>
        <uri>http://www.wgz.org/~chromatic</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.wgz.org/~chromatic">
        <![CDATA[<p>The database connection itself is an instance variable, so it's either methods or pass the connection as a parameter for my code.</p>]]>
    </content>
    <published>2013-01-22T00:44:00Z</published>
    <updated>2013-01-22T00:44:00Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.522-comment:6356</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.522-comment:6353" type="text/html" href="/mt/2013/01/how-forking-perl-5-could-work.html#comment-6353"/>


    <link rel="alternate" type="text/html" href="/mt/2013/01/how-forking-perl-5-could-work.html#comment-6356" />
    <title>Re: How Forking Perl 5 Could Work — From: chromatic</title>
    <author>
        <name>chromatic</name>
        <uri>http://www.wgz.org/~chromatic</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.wgz.org/~chromatic">
        <![CDATA[<p>I'm drawing a stricter line between the computing model of a bootstrapping VM and the computing model of a language built on that. If anything blurs that model, Perl 5 is an example.</p>

<p>That line is, in practice, much blurrier than I make it sound--you're absolutely right about that, but I do think that Squeak/Slang demonstrate that it's possible.</p>]]>
    </content>
    <published>2013-01-21T21:32:16Z</published>
    <updated>2013-01-21T21:32:16Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.522-comment:6353</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.522" type="text/html" href="/mt/2013/01/how-forking-perl-5-could-work.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/01/how-forking-perl-5-could-work.html#comment-6353" />
    <title>Re: How Forking Perl 5 Could Work — From: Chip</title>
    <author>
        <name>Chip</name>
        
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>Haskell has done well adding features w/o usually changing the underlying computing model; in fact, not changing the computing model is one of their guides for acceptable new language features.  It's not a hard rule, tho.</p>

<p>OTOH their core model was created by and for mathematicians, so its orthogonality puts even Python to shame.  With that foundation, adding syntactic sugar is reasonably most of your activity.<br />
</p>]]>
    </content>
    <published>2013-01-21T21:18:13Z</published>
    <updated>2013-01-21T21:18:13Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.524-comment:6344</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.524" type="text/html" href="/mt/2013/01/wrapping-existing-code-without-anonymous-functions.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/01/wrapping-existing-code-without-anonymous-functions.html#comment-6344" />
    <title>Re: Wrapping Existing Code without Anonymous Functions — From: vsespb</title>
    <author>
        <name>vsespb</name>
        <uri>http://mt-aws.com/</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://mt-aws.com/">
        <![CDATA[<p>There is, but need to use '::', not '->'</p>

<p>use 5.010;<br />
package MyClass;<br />
    my $handle = 123;<br />
    sub transaction(&) { say "begin"; shift->(); say "commit ($handle) "; }<br />
1;<br />
package main;<br />
my $handle = 345;<br />
MyClass::transaction {<br />
    say "aha"<br />
};<br />
1;<br />
__END__</p>

<p>begin<br />
aha<br />
commit (123) </p>

<p>(tested on 5.10.1)<br />
</p>]]>
    </content>
    <published>2013-01-21T20:59:18Z</published>
    <updated>2013-01-21T20:59:18Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.524-comment:6336</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.524-comment:6331" type="text/html" href="/mt/2013/01/wrapping-existing-code-without-anonymous-functions.html#comment-6331"/>


    <link rel="alternate" type="text/html" href="/mt/2013/01/wrapping-existing-code-without-anonymous-functions.html#comment-6336" />
    <title>Re: Wrapping Existing Code without Anonymous Functions — From: chromatic</title>
    <author>
        <name>chromatic</name>
        <uri>http://www.wgz.org/~chromatic</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.wgz.org/~chromatic">
        <![CDATA[<p>Not to my knowledge, no.</p>]]>
    </content>
    <published>2013-01-21T20:28:26Z</published>
    <updated>2013-01-21T20:28:26Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.524-comment:6331</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.524-comment:5637" type="text/html" href="/mt/2013/01/wrapping-existing-code-without-anonymous-functions.html#comment-5637"/>


    <link rel="alternate" type="text/html" href="/mt/2013/01/wrapping-existing-code-without-anonymous-functions.html#comment-6331" />
    <title>Re: Wrapping Existing Code without Anonymous Functions — From: Roman Daniel</title>
    <author>
        <name>Roman Daniel</name>
        
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>It is slightly off-topic, but is there really a way in 5.10+ how to write a method call without parenthesis and sub keyword? I doubt it even though</p>

<p>MyClass->transaction { <br />
$myobject->mymethod($args)<br />
}</p>

<p>looks more elegant than ordinary</p>

<p>MyClass->transaction(sub { <br />
$myobject->mymethod($args)<br />
})</p>

<p></p>

<p><br />
</p>]]>
    </content>
    <published>2013-01-21T20:22:41Z</published>
    <updated>2013-01-21T20:22:41Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.524-comment:6271</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.524-comment:5896" type="text/html" href="/mt/2013/01/wrapping-existing-code-without-anonymous-functions.html#comment-5896"/>


    <link rel="alternate" type="text/html" href="/mt/2013/01/wrapping-existing-code-without-anonymous-functions.html#comment-6271" />
    <title>Re: Wrapping Existing Code without Anonymous Functions — From: Peter Rabbitson</title>
    <author>
        <name>Peter Rabbitson</name>
        <uri>http://search.cpan.org/~ribasushi/</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://search.cpan.org/~ribasushi/">
        <![CDATA[<p>Try::Tiny is *exceptionally* heavy. I am in the process of taking it out of parts of DBIC, because in some hot-spots it accounts for over 50% of the entire execution time.</p>

<p>Ideally I need to find some time to peruse Filter::Keyword[1] (not yet on CPAN) to inline-rewrite try/catch invocations into the corresponding eval. Then Try::Tiny will be truly useful again.</p>

<p>[1] <a href="http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/Filter-Keyword.git" rel="nofollow">http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/Filter-Keyword.git</a></p>]]>
    </content>
    <published>2013-01-21T14:02:36Z</published>
    <updated>2013-01-21T14:02:36Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.524-comment:6047</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.524-comment:5882" type="text/html" href="/mt/2013/01/wrapping-existing-code-without-anonymous-functions.html#comment-5882"/>


    <link rel="alternate" type="text/html" href="/mt/2013/01/wrapping-existing-code-without-anonymous-functions.html#comment-6047" />
    <title>Re: Wrapping Existing Code without Anonymous Functions — From: chromatic</title>
    <author>
        <name>chromatic</name>
        <uri>http://www.wgz.org/~chromatic</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.wgz.org/~chromatic">
        <![CDATA[<p>We are using Pg, but I'm paranoid enough at this step that I want an explicit savepoint, especially if the view update method ends up performing more than one DDL modification.</p>]]>
    </content>
    <published>2013-01-21T02:14:27Z</published>
    <updated>2013-01-21T02:14:27Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.524-comment:6044</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.524-comment:5896" type="text/html" href="/mt/2013/01/wrapping-existing-code-without-anonymous-functions.html#comment-5896"/>


    <link rel="alternate" type="text/html" href="/mt/2013/01/wrapping-existing-code-without-anonymous-functions.html#comment-6044" />
    <title>Re: Wrapping Existing Code without Anonymous Functions — From: chromatic</title>
    <author>
        <name>chromatic</name>
        <uri>http://www.wgz.org/~chromatic</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.wgz.org/~chromatic">
        <![CDATA[<p>This code is part of a reusable component and I didn't want to force the use of Try::Tiny for other projects. I know what Try::Tiny fixes and it doesn't do anything in this case that the code you see doesn't already do. The syntactic advantage wasn't quite enough in that case.</p>]]>
    </content>
    <published>2013-01-21T02:11:15Z</published>
    <updated>2013-01-21T02:11:15Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.524-comment:5896</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.524" type="text/html" href="/mt/2013/01/wrapping-existing-code-without-anonymous-functions.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/01/wrapping-existing-code-without-anonymous-functions.html#comment-5896" />
    <title>Re: Wrapping Existing Code without Anonymous Functions — From: Christian Walde</title>
    <author>
        <name>Christian Walde</name>
        
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>I'm surprised you didn't use Try::Tiny in there. Is there a reason for that?</p>]]>
    </content>
    <published>2013-01-20T10:53:49Z</published>
    <updated>2013-01-20T10:53:49Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.524-comment:5882</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.524" type="text/html" href="/mt/2013/01/wrapping-existing-code-without-anonymous-functions.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/01/wrapping-existing-code-without-anonymous-functions.html#comment-5882" />
    <title>Re: Wrapping Existing Code without Anonymous Functions — From: Darren Duncan</title>
    <author>
        <name>Darren Duncan</name>
        <uri>http://muldis.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://muldis.com">
        <![CDATA[<p>Were you using Postgres as your database?  If you were, then you wouldn't have to "add transactional semantics to a DDL change" as DDL is already subject to transactions (I think there's only one exception), so you can rollback DDL.  Even SQLite does that too.  I seem to recall no other SQL DBMS does, unfortunately.  This feature is a huge point in the favor of Postgres.  (In contrast, I recall MySQL will do an implicit commit of prior work if you perform any DDL, which is truly a bad thing.)<br />
</p>]]>
    </content>
    <published>2013-01-20T08:41:43Z</published>
    <updated>2013-01-20T08:41:43Z</updated>

</entry>

<entry>

    <id>tag:www.modernperlbooks.com,2013:/mt//1.524-comment:5637</id>

    <thr:in-reply-to ref="tag:www.modernperlbooks.com,2013:/mt//1.524" type="text/html" href="/mt/2013/01/wrapping-existing-code-without-anonymous-functions.html"/>


    <link rel="alternate" type="text/html" href="/mt/2013/01/wrapping-existing-code-without-anonymous-functions.html#comment-5637" />
    <title>Re: Wrapping Existing Code without Anonymous Functions — From: vsespb</title>
    <author>
        <name>vsespb</name>
        <uri>http://mt-aws.com/</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://mt-aws.com/">
        <![CDATA[<p>> This code has no need for that generality yet. I could just as well have used the anonymous function, and I may in the future, but for now this satisfies my needs.</p>

<p>With this I cannot disagree.</p>

<p>> When those conditions are true, I think this code is clearer</p>

<p>Disagree.</p>

<p># perl 5.10+<br />
MyClass->transaction { <br />
	$myobject->mymethod($args)<br />
}</p>

<p>looks clearer.</p>

<p>1) transaction code is most likely should be class method, not instance method. if your class (not object) does not<br />
contain required data (i.e. database connection handle) to perform the transaction, it's just implementation problem.</p>

<p>2) method name has no meaning without object, and in your example it's passed as separate argument.</p>

<p>btw, in Ruby such things always implemented like</p>

<p>transaction do<br />
  ...<br />
end<br />
</p>]]>
    </content>
    <published>2013-01-19T23:02:16Z</published>
    <updated>2013-01-19T23:02:16Z</updated>

</entry>

</feed>