Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Perl News

( #23771=superdoc: print w/ replies, xml ) Need Help??

For the latest news on what's happening in the Perl world, check out these sites:

If you have a Perl-related news item you'd like to share, you may post it in the Perl News section. Please try to avoid duplicating news; but pointers (with summaries) to important stories on other sites are acceptable here.

Perl News
Simple, readable, elegant coding in Perl 5 and Perl 6 -- professional language tutor hosting a free 4hr IRC workshop on Wednesday, May 1st
2 direct replies — Read more / Contribute
by raiph
on Apr 23, 2013 at 13:40
    Update: Carl has now blogged about this workshop.

    Workshop summary

    Carl Mäsak's upcoming workshop is for anyone who knows at least a little Perl (5 or 6) and wants to see, learn or discuss best practice basics regarding coding simplicity, readability, or elegance in Perl (5 or 6).

    This workshop is designed to deliver benefits for all, but should be especially suitable for Perl 5 programmers wishing to spend a few hours comparing and contrasting it with Perl 6.

    I'm one of a dozen or so who have signed up already. Hope to see some more monks there!

DCBPW is tomorrow, April 20th
2 direct replies — Read more / Contribute
by derby
on Apr 19, 2013 at 19:50

    If you're in Bmore or close by, be sure to check out DCBPW!

Perl. The comparison to other languages.
6 direct replies — Read more / Contribute
by programmer.perl
on Apr 18, 2013 at 06:01

    Written by Brendan Byrd (source)

    For the record, I've been programming in Perl 5 for around 15 years, so I'm a bit biased. Having said that, I really like Perl. Don't listen to the naysayers, and don't think that its age is somehow an indicator of its shelf live. The best way to look at Perl is to see it in comparison to other languages:

    • PHP - PHP is a pretty good web programming language; don't get me wrong. But, it's only a web programming language. Even web applications need their cronjobs to do clean up processes, and you have to do some strange stuff to make that happen. Never mind having to write a quick script for UNIX administrator or parsing a text file. Plus, PHP doesn't have CPAN.

    • Ruby - The language is too new and "script kiddie" for my tastes. The only thing I hear about Ruby is Ruby on Rails. Perl has Catalyst and Dancer (as MVC frameworks), which are damn fine MVCs, but it's not the cornerstone of the language. You're not going to find "Ruby" as a requirement in job offers any time soon (if ever). Plus, Ruby doesn't have CPAN.

    • Python - In the words of Larry Wall, Python is just snake oil. Python cares about whitespace and the last language I used that cared about whitespace was BASIC. Also, like BASIC, it's was essentially designed to be a easy-to-use beginner's language. Finally, no CPAN here.

    • Java - Java is a problem child language. The concept was to have this virtual machine that runs on any platform, but because of the huge popularity of the language in college courses, you see Java applications every where that they shouldn't be. For example, in-house server-based web applications shouldn't exist. It's a single server with specs they define and it gets wrapped in a separate VM with a limited memory footprint. Java is bloated, and they don't have CPAN.

    • C# - I've actually have been using this language quite a bit now, and I've seemed to have formed a love/hate relationship with it. Being able to overload methods with different parameters is cool and fun. But, if you want a language that will bitch at your every line of code about type casting, then C# is for you. My god, it wants you to put explicit casting EVERYWHERE! Making classes are fun, but you suddenly realize that you're spending more time making classes to make the damn language just WORK than actually writing real code.

      Also, C# doesn't have...okay, it has .NET, which is really good and extensive. However, I still like CPAN better because you can still write your own modules and complain at the author about a bug or design flaw. And they are all free. Plus, Perl is working towards Perl.NET in the future, so we may be designing Windows applications before long.

    Perl is a great language that has:

    • Regular Expressions - If it's one thing that Perl can do well, it's text manipulation. Yes, many languages have regular expressions, but Perl has damn near invented them, and there's a reason why grep has a "Perl Regular Expression" mode, or why Oracle has a section on "Perl-influenced Extensions in Oracle Regular Expressions". It's built-in and doesn't require any modules.

    • Flexibility - You have three basic variable types: Scalars, Arrays, and Hashes. That's it. That's all you need. You don't have a int, byte, string, or any of that crap. Perl figures it out just fine. And you can use references all you want without fear of memory leaks or cause the whole PC to crash. The language just works.

    • Portability - Perl works great on the web. It works great in UNIX. It even works pretty well in Windows. It's not pigeon-holed to a single function. It's a jack-of-all-trades, but also a master of (mostly) everything.

    • It's easy to do a lot with a little code - Give me a 1K blank file and I can write all kinds of things with that space. Even a Perl one-liner is great to add into a command line pipe.

    • CPAN - I cannot stress how good it is to find just about anything you need for anything. What is "anything"? Well, how about DB modules for every database or thing you could imagine, ranging from Oracle to iPod to CSV to Adabas to Yaswi? How about several fully featured web servers? How about a Excel file reader, or a SNMP module, or a module that reads comments for debug lines, or modules that help you program faster? A project that I'm doing right now is writing a dynamic Terraria map generator, augmenting from an existing module called Games::RolePlay::MapGen. .NET would never have something like that.

      Plus, it's a breeze to install any module via CPAN. Get it from Debian. Install it from CPAN directly. It does as good a job as apt-get in resolving dependencies. I have no problem telling my sysadmin to install X module from CPAN, since it's just a simple one-liner command.

    Yes, it has its flaws, and yes, I'm biased towards it, but you've probably already heard the negatives too many times. They don't outweigh the positives, not by a long shot.

    Enough codes make shapes.
Introducing Type::Tiny
2 direct replies — Read more / Contribute
by tobyink
on Apr 15, 2013 at 11:31

    In case you've not seen my entry, I've just released Type::Tiny which is something along the lines of MooseX::Types but:

    • Has zero (non-core) dependencies.
    • Is faster.
    • Works with Moose, Moo and Mouse.
    package Cow { use Moo; has name => (is => 'lazy', default => sub { 'Mooington' }) } say Cow->new->name
Announcing The Crowd-Funding Campaign For Pinto
1 direct reply — Read more / Contribute
by jthalhammer
on Apr 08, 2013 at 18:44

    brian d foy has been experimenting with crowd-funding for open source projects, so I approached him about running a campaign for Pinto. I made a short video and we launched the campaign on Crowdtilt (which happens to be Perl shop). I'd really appreciate if you could help spread the word!

    Here's the campaign:

    Pinto is a robust application for creating and managing custom repositories of Perl modules. You can use any combination of CPAN modules and private modules. And the repository works seamlessly with installer clients like cpan and cpanm.

    When you build up your system from a Pinto repository, you'll get exactly the modules you want and the versions you want -- every time. Pinto also has some novel tools for helping you manage upgrades to your dependencies

    The funds of the Crowdtilt campaign will be used to enhance Pinto to fetch specific versions of CPAN modules (without you having to know which distribution they came from). That will make is easy to build up a repository that contains all the modules needed for your legacy environment.

Announcement: Salt Lake Perl Mongers first meeting
No replies — Read more | Post response
by davido
on Apr 08, 2013 at 12:06

    The first meeting of newly rebooted Salt Lake Perl Mongers is tomorrow.

    Date & Time
    Tuesday April 9th, 2013

    Salt Stack
    5272 South College Drive, #301
    Murray, Utah 84123

    We'll have one presentation, and then spend some time discussing goals for the group. Mailing list subscription and event details are available at the Salt Lake Perl Mongers website.

    If you're in the area, stop by and support The Perl Programming Language, and the Salt Lake Perl Community.


Official YAPC Africa 2013 Announcement
No replies — Read more | Post response
by The Perlman
on Apr 01, 2013 at 12:40
    Greetings Monks,

    YAPC Africa 2013 will be held in the

    Royal Savoy Hotel,
    Sharm el Sheikh, Sinai, Egypt
    from October 9th through October 11th.

    The conference theme is "Sun, Beach, Perl"!

    Come celebrate Perl's Arabian spring with all your favorite members of the (Perl) family!

    We managed to bargain a discount price of 30€ per night within this 5 star conference hotel for the first 350 submissions. Flights from Amsterdam start from 50€!

    Coming soon: Act site with registration with booking information and talk submissions!

    Ab Perl Alaykum!!!

    - Ron YAPC Africa 2013 Director & Beirut.PM President

    PS: Many thanks to the collaboration with Tel_Aviv.PM and Cairo.PM for making this possible!!!

FLOSS Weekly Interview on Pinto
No replies — Read more | Post response
by jthalhammer
on Mar 27, 2013 at 16:05
chef cpan cookbook
1 direct reply — Read more / Contribute
by melezhik
on Mar 25, 2013 at 07:22
    In this post I want to share my chef cookbook called cpan.
    Chef is the modern platform for deploy automation and configuration.
    One of chef great feature - one may create custom recipes to deploy/configure
    specific applications, written on any languages. When I first met with chef,
    I had already had some experience on deploying perl applications. I used standard build cycle:
    perl Build.PL ./Build ./Build installdeps ./Build test ./Build install
    So the idea of integrating perl application install come into my mind in natural way. With cpan cookbook one may do standard perl build/test/install idioms using chef. Here I am putting some use cases, just to give some sense of what it is. If you like it, you may learn more on
    Cpan cookbook use cases
    Installing application, distributed with tar-ball. Let's say you have already fetch and store tar-ball with
    others chef resources (the following code is self-explanatory). So you may easily install it into given install base:
    remote_file '/tmp/app-0.0.1.tag.gz' source 'http://local.server/app-0.0.1.tag.gz' end execute 'cd /tmp/ && tar -xzf app.tag.gz' cpan_client 'my application' do user 'root' group 'root' install_type 'application' action 'install' install_base '/path/to/your/application/home' cwd '/tmp/app-0.0.1' end
    The same thing with your perl5lib paths taking into account ('/home/user/alex/perl5lib/'):
    cpan_client 'my application' do user 'root' group 'root' install_type 'application' action 'install' install_base '/path/to/your/application/home' cwd '/tmp/app-0.0.1' inc %w{ /home/user/alex/perl5lib/ } end
    If you need just installing arbitrary cpan module, here some examples to start. Install by given link:
    cpan_client " +pm-3.59.tar.gz" do user 'root' group 'root' module_name 'CGI' action 'install' end
    Or just rely on your cpan mirrors:
    cpan_client 'CGI' do user 'root' group 'root' install_type 'cpan_module' action 'install' end
    With cpan cookbooks you may even play with version requirements. Require minimal version:
    cpan_client 'CGI' do user 'root' group 'root' version '3.55' install_type 'cpan_module' action 'install' end
    Do not install if already installed:
    cpan_client 'CGI' do user 'root' group 'root' version '0' install_type 'cpan_module' action 'install' end
    Try to upgrade to highest possible version:
    cpan_client 'CGI' do user 'root' group 'root' install_type 'cpan_module' action 'install' end
    If you install by distributive, you may even require concrete version:
    cpan_client ' +pm-3.59.tar.gz' do user 'root' group 'root' module_name 'CGI' version '=3.59' action 'install' end
    Other examples to check out is on
Pinto on FLOSS Weekly next Wednesday
No replies — Read more | Post response
by jthalhammer
on Mar 23, 2013 at 05:02

    I'll be doing a live webcast about Pinto with Randal Schwartz for FLOSS Weekly. Tune in to next Wednesday, March 27 at 08:30 (Pacific Time) to the see the show. Your can send in your questions in real-time via the #twitlive channel on See you then!

    Pinto is a robust tool for creating custom CPAN-like repositories of Perl modules. You can fill your repository with any combination of private and public modules, and then build/test/install them using the standard tools (e.g. cpan, cpanm, cpanp). Since you control the repository, you'll get exactly the same modules every time. Pinto also has some novel tools for tracking and managing changes, so you can upgrade modules with confidence and control.

perl distributive "early" testing with jenkins
2 direct replies — Read more / Contribute
by melezhik
on Mar 18, 2013 at 05:37

    Often when deploying application one may face the risk of divergence between testing and production environment. Even though you have a stage servers `like production one', it'd be reasonable to check distributive in production environment before release is happened. I would call it `early` testing. Yes, of course, some subtle bugs will arise only in runtime phase, and unit test cannot cover it all, I say here about prerequisite unmet issues. In perl world unit tests and prerequisites checks are executed in standart way. One follows standard procedure, when installing things.

    I put here example for Module::Build based project, but with ExtUtils::MakeMaker it's almost the same:

    perl Build.PL # check dependencies and generate build file ./Build ./Build test # run unit tests

    So, why not to automate this process in continues integration approach, like for example Jenkins does?

    1. Upload distributive to production server
    2. Unpack it
    3. Run standard perl Build.PL/Makefile.PL cycle to execute unit tests and check prerequisites
    4. If anything goes wrong you know it in good time, before release is happened!

    So this is what I've done in jenkins perl-smoke-test plugin. Please check it out and try to use it!

YAPC::NA Austin - Call for speakers extended to end of month
No replies — Read more | Post response
by raiph
on Mar 18, 2013 at 00:08
    The cut off for submitting talks for YAPC::NA in Austin was supposed to be the 15th, but we’re moving the deadline to the end of this month. I've posted a link in reddit; maybe others can spread this news in forums, channels, mailing lists, etc. frequented by folk you'd like to see giving talks at YAPC. Thanks!


    YAPC::NA 2013 Team

Salt Lake Perl Mongers (Reboot)
1 direct reply — Read more / Contribute
by davido
on Mar 15, 2013 at 14:10

    The Salt Lake Perl Mongers has been rebooted. We intend to hold monthly meetings, or occasional "emergency social meets" for those times when the monthly meeting doesn't come together. If you're in the Salt Lake area, join our mailing list and get involved.

    The mailing list subscription page is available here. Once we've organized our first event I'll make one more announcement here in the Perl News section.

    Perl Mongers groups get together for presentations and discussions about Perl and Perl-related topics. There's usually a social component as well. Perl Mongers is a great way to get to know the local Perl community, as well as to learn and share ideas. Over the past couple of years I've found the PM groups that I've participated in (Los Angeles, and Thousand Oaks) to not only be excellent resources, but also a lot of fun.

    The Salt Lake Perl Mongers group seems to be arousing a lot of local interest. Please join us if you're in the area!


Jenkins plugin for building perl applications
1 direct reply — Read more / Contribute
by melezhik
on Mar 15, 2013 at 03:45

    Jenkins - is well known continues integration server. One of it's great features - one may extend it by writing custom plug-ins. Recently I have created one plug-in to build and make distributive of perl applications.

    It implements standard build scheme:
    • cd to source directory
    • install dependencies from source directory into local directory
    • and optionally create distributive from source directory

    Other features are:

    • find 'tagged' directory with maximum version number ( implementing install from subversion tags )
    • applying different patches ( install other cpan modules )
    • both Makefile.PL and Build.PL are supported
    • colour output
    • and some others ...

Perls of Christmases Past, Present and Future (YAPC::NA 2013 Keynotes)
1 direct reply — Read more / Contribute
by raiph
on Mar 09, 2013 at 00:34

Add a piece of Perl News
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?

    What's my password?
    Create A New User
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others cooling their heels in the Monastery: (8)
    As of 2015-07-06 11:33 GMT
    Find Nodes?
      Voting Booth?

      The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...

      Results (72 votes), past polls