Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?

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
berrybrew, the Perlbrew for Windows v1.15 released
2 direct replies — Read more / Contribute
by stevieb
on Jul 28, 2017 at 18:33

    I've released berrybrew version 1.15.

    All of the credit for this update goes to pryrt who went far above and beyond with this PR. It's a pleasure to have him contributing to this (or any) project.

    The significant change here is the addition of the use command. I feel that this addition adds tremendous value to the software, and makes it much easier to use.

    This allows you to temporarily switch to one of your other installed Perl instances either in the same command window or new ones without switching your currently switched to one. Here are some examples:

    Temporarily use a different installed version, in the same window. Typing exit will return you to your previous environment within the same window:

    c:\>berrybrew use 5.10.1_32 Perl-5.10.1_32 ============== Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. All rights reserved. <berrybrew use 5.10.1_32>: run "exit" leave this environment c:\>

    Calling exit returns you to your previous environment within the same CLI window.

    You can also use multiple versions within the same window. Using this method will cascade the instances:

    c:\>berrybrew use 5.10.1_32,5.8.9_32 Perl-5.10.1_32 ============== Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. All rights reserved. <berrybrew use 5.10.1_32>: run "exit" leave this environment c:\>exit Exiting <berrybrew use 5.10.1_32> Perl-5.8.9_32 ============== Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. All rights reserved. <berrybrew use 5.8.9_32>: run "exit" leave this environment c:\>exit Exiting <berrybrew use 5.8.9_32> c:\>

    Let's actually pop up a couple of new windows instead of using the one you're currently using:

    c:\>berrybrew use --win 5.8.9_32,5.10.1_32 berrybrew use 5.8.9_32: spawned in new command window berrybrew use 5.10.1_32: spawned in new command window c:\>
    # first new window <berrybrew use Perl-5.8.9_32> c:\>
    # second new window <berrybrew use Perl-5.10.1_32> c:\>

    I can't exactly show you the output without a screenshot, but I'm sure you get the gist. You can continue working in your main window, but execute things in the other two who have the respective version of Perl loaded and ready to go.

    pryrt, I can't thank you enough for all of the hard work you've put into this. I mean, not just the new feature, but cleaning up erroneous whitespace, completely enhancing the whole test framework, updating the docs and meticulously adding tests while fully and completely explaining everything clearly. Cheers!

berrybrew, the Perlbrew for Windows v1.13 released
No replies — Read more | Post response
by stevieb
on Jul 15, 2017 at 11:38

    I've released berrybrew version 1.13.

    The most notable change is the addition of the register command, which allows you to copy/move existing Strawberry Perl portable editions from your local/remote systems and have them operate as custom instances within berrybrew. Before registering a new instance:

    > berrybrew available The following Strawberry Perls are available: 5.26.0_64 5.26.0_64_PDL 5.26.0_32 5.24.1_64 [installed] * 5.24.1_64_PDL 5.24.1_32 5.22.3_64 5.22.3_64_PDL 5.22.3_32 5.20.3_64 5.20.3_64_PDL 5.20.3_32 5.18.4_64 5.18.4_32 5.16.3_64 5.16.3_32 5.14.4_64 5.14.4_32 5.12.3_32 5.10.1_32 5.8.9_32 * Currently using

    Now, copy your new instance into the instance directory (by default c:/berrybrew), then register it. I've used new_instance as the example instance directory in this case:

    > berrybrew register new_instance > berrybrew available The following Strawberry Perls are available: 5.26.0_64 5.26.0_64_PDL 5.26.0_32 5.24.1_64 [installed] * 5.24.1_64_PDL 5.24.1_32 5.22.3_64 5.22.3_64_PDL 5.22.3_32 5.20.3_64 5.20.3_64_PDL 5.20.3_32 5.18.4_64 5.18.4_32 5.16.3_64 5.16.3_32 5.14.4_64 5.14.4_32 5.12.3_32 5.10.1_32 5.8.9_32 new_instance [custom] [installed] * Currently using

    That instance can now be used under berrybrew.

    Other notable changes:

    • pryrt sent in a very large pull request that did a sweeping overhaul on the unit test framework which makes it much more flexible and reliable (thanks!)
    • added new exception handling for certain edge cases
    • documentation updates
    • closing of several minor issues

    Here's the full list of available commands:

    > berrybrew berrybrew <command> [subcommand] [option] available List available Strawberry Perl versions and which are +installed clean * Remove all temporary berrybrew files clone Make a complete copy of a Perl installation config Add berrybrew to your PATH exec * Run a command for every installed Strawberry Perl fetch Update the list of Strawberry Perl instances available install Download, extract and install a Strawberry Perl off Disable berrybrew perls (use 'switch' to re-enable) register Manually register a custom installation directory remove Uninstall a Strawberry Perl switch Switch to use a different Strawberry Perl unconfig Remove berrybrew from PATH upgrade Performs a safe upgrade. Requires Git installed help Display this help screen license Show berrybrew license version Displays the version * - view subcommand details with 'berrybrew <command> help'
Outthentic significant release - version 0.3.0
1 direct reply — Read more / Contribute
by melezhik
on Jul 10, 2017 at 09:29



    1. Check files are now optional. Priorly to this version one would have had to create empty chef files in case they didn't need script's checking which was quite awkward :)).
    2. The documentation has been improved. Hopefully it has become more clear and to the point.
    3. Meta stories have been demolished and meta.txt files "became" just a stories' headers.

    -- Regards


Perl5 plugin for IntelliJ IDEA 2017.1.3 released: formatting, Mojo, Moose, Exception::Class, Class::Accessor
1 direct reply — Read more / Contribute
by hurricup
on Jul 07, 2017 at 15:40


    • Formatter:
      • IMPORTANT: incompatible changes. Some options been removed or merged. Was not possible to migrate automatically. Please, check code style settings before formatting
      • Added option to align strings in QW lists
      • Added option to control spacing within QW lists
      • Added option to align fat commas
      • Added option to align ternary expressions operators
      • Added option to align -> in chained dereferences
      • Added options for braces position in subs, namespaces and compound statements
      • Comma is no longer wrapped to the next line
      • Several minor fixes and improvements
    • Implemented Exception::Class module support, #848
    • Restored and improved Class::Accessor support, #1395
    • Mojolicious helpers parsing been re-worked. Should work better now
    • Mojolicious attributes are now supported
    • Moose attributes works again, plugin now understands all declarations generated by single has statement.
    • You are now able to use a single -bareword argument in use statement, like use Mojo::Base -strict;
    • Recursive inheritance inspection is now available (again)
    • Annotations works with all new implemented features (Moose, Mojo, Exception::Class, Constants)


    • printf FH is now parsed properly. By nazarov-yuriy.
    • Suppressed lexing of &~ as non-existing internal variable. #1449
    • Resolve of dereference chain if comment is inside it, #1483
    • Parsing confusion with archaic package format, #1506
    • Resolve of fancy calls and objects methods constructed in fancy manner my $obj = new Foo::Bar();, #1471
    • Empty POD node should not appear in file structure anymore
    • Created a lot of tests for plugin and fixed a lot of minor bugs


Videos of talks from YAPC::NA 2017 / The Perl Conference (TPC) 2017
No replies — Read more | Post response
by Corion
on Jul 06, 2017 at 04:57
TPCiA: Deadline extended
No replies — Read more | Post response
by choroba
on Jul 05, 2017 at 13:16
    The deadline for the Call for Papers is extended until 8 July 23:59:59 Europe/Amsterdam.

    See you there!

    ($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,
Because CPAN Needs More Templating Modules
2 direct replies — Read more / Contribute
by tobyink
on Jun 24, 2017 at 17:34

    Why learn a whole new language for templating when you already know a perfectly good one? This isn't the first module that allows you to embed Perl in your templates, but it's yet another one.

    use Types::Standard -types; use Template::Compiled; my $template = Template::Compiled->new( signature => [ name => Str, age => Int->plus_coercions(Num, sub { int $_ } ), ], template => '<p>Hi <?= $name ?>. You are <?= $age ?> years old.</p +>', escape => 'html', ); # The number will be rounded. # The ampersand will be escaped properly. # print $template->( name => 'Alice & Bob', age => 45.1 );

    Template::Compiled on MetaCPAN.

The Perl Conference Newsletter
No replies — Read more | Post response
by davido
on Jun 07, 2017 at 11:40

    In this issue:

    • Sunday Arrival Dinner
    • Tuesday Night Social: Get to know your fellow attendees!
    • Tutorials spaces still available
    • Call for Speakers: Lightning Talks
    • Call for Volunteers

    Arrival Dinner - Sunday June 18

    Arrangements have been made with Zikrayet Restaurant and Lounge to host a large crowd for The Perl Conference Arrival Dinner.

    Given the nature of the place, it will be possible to make this event more of a come and hang out destination than we've been able to have in past years. Just the same we have an official time of 6pm set for the dinner so everyone can have a common plan for arrival.

    This is an arrivals dinner but not necessarily the arrivals dinner. It's also a tradition that others who prefer smaller crowds and/or a more vegan-friendly menu organize an Alt Arrival Dinner.

    For more information, or to note your intended attendance, please visit:

    For more information on the Alt Arrival Dinner:

    Tuesday Night Social

    This year we are continuing the very successful event established in Orlando last year, instead of the big banquet of years before. We will still be having a social at 6 pm with appetizers and drinks. After a long day of following your favorite track come say hello to friends from far and near over a glass of wine or a pint of beer!


    There’s still time to sign up! Some tutorials have very limited space, so sign up today! If you’ve already purchased your Conference pass, you can still add tutorials by logging in and making a separate purchase. The available tutorials are:

    • John Anderson - Perl in a Day - Sunday 6/18, $50
    • Dave Rolsky - Introduction to Moose - Sunday 6/18, $150
    • Randal Schwartz - Perl Second Best Practices - Sunday 6/18 (half day), $125
    • Ricardo Signes - Unicode and Associated Punishments - Sunday 6/18 (half day), $100
    • Mark Jason Dominus - Advanced Parsing Techniques - Thursday 6/22, $75
    • Mark Jason Dominus - Higher Order Perl - Thursday 6/22, $75
    • David Golden - MongoDB with Perl - Thursday 6/22, $99
    • Damian Conway - New Perl - Thursday 6/22, $150
    • Damian Conway - Parsing with Perl 6 Regexes and Grammars - Thursday 6/23, $150

    Call for Speakers: Lightning Talks

    This year there are THREE sessions of lightning talks! Each will have about 10 Lightning Talks of 5 minutes each.

    These Lightning Talks may be serious, funny, or both. They may be given by experienced speakers already giving full length talks or by first time speakers just starting out (this is a great way to get started if you have something to say). If you are a first time speaker you will win a tie with an experience speaker when the schedule is made if it comes to it. Today's first time speaker could be tomorrow's keynote speaker.

    In addition to the five minute Lightning Talks where you get to use your computer, slides, and any other tool, we will also have some Lightning Advertisements. These are only 30 seconds, you don't have to submit a proposal, you don't get any slides, and the only AV assistance offered is a microphone. If you have a BOF to announce or any other short message you can use the transition time that would be otherwise wasted between Lightning Talks to share your message. Just show up before we start and take a seat in the assigned seats in the front of the room.

    Submit your talk here:

    Call for Volunteers

    Volunteer Registration Form Here:

    Setup / Cleanup Crew

    On Sunday, we will need volunteers to assist with unboxing materials, placing signs, setting up AV equipment, preparing registration area, and working to make the area aesthetically pleasing. There will be a lot of odd jobs that need to be done.

    On Thursday and Friday, we will need to go through everything that is left over, box it, and ship it out.

    Room Moderator

    The Moderator will be assigned a room for the day (only during breakout sessions). Their responsibility is to introduce each speaker prior to their talk. They work with the Videographer to ensure talks do not start until the videography team is ready to record. They also ensure that their room keeps to the schedule, cuing the speaker to end their talk as necessary. They will provide any special announcements between talks as instructed by the organizer staff.


    Each room will have a Videographer, who reports to the Videography Team leader. They are responsible for recording the talks in their assigned room (except where the speaker has opted-out of being recorded).

    Assistant Videographer

    Performs tasks as assigned by the videographer. Acts as a runner if something is needed in the room.

    Registration Desk

    Assists people with checking in. Serves as an information desk attendant. Assists attendees with retail purchases.


Perl5 plugin for IntelliJ IDEA 2017.1.2 released. Perl 5.26 support and more
2 direct replies — Read more / Contribute
by hurricup
on Jun 07, 2017 at 03:52


    • Plugin now uses debugger module v2017.1x
    • Better comments parsing in char classes and \Q...\E quotes in regexps
    • Better POSIX chars classes parsing
    • Perl 5.26 syntax support:
      • /xx regexp modifier
      • Lexing and parsing for lexical subs. NB: for now there is no proper resolving for them. Works as usual subs. Please, see #1439
      • Indentable here-docs
      • References declarations
      • ^CAPTURE and ^CAPTURE_ALL variables
      • Perl settings now allows You to choose target Perl version. In case 5.26 is selected, resolve won't check current directory while resolving packages.


    • Lexing of short bare here-doc openers. By tonegz
    • Lexing of $( and $) inside the match part of regexp. #1435
    • Indentation of here-docs with selection and tab
    • Completion of packages in current directory (prior to 5.26)


Strawberry Perl 5.26.0 released
1 direct reply — Read more / Contribute
by stevieb
on Jun 05, 2017 at 09:01

    Details here.

    For berrybrew users, if you have version 1.12 (berrybrew version) installed, you can automatically import the new release by running the berrybrew fetch command.

Type::Tiny 1.2.0 Released
1 direct reply — Read more / Contribute
by tobyink
on Jun 01, 2017 at 06:44

    So, Type::Tiny 1.2.0 (a.k.a. 1.002000 using Perlish decimals) is now available on CPAN.

    Highlights since 1.0.0:

    • Type::Params now has compile_named and validate_named.

      This allows for:

      sub add_pet { state $check = compile_named( name => Str, species => Str, age => Optional[Int], ); my $args = $check->(@_); ...; # do stuff with $args hashref }

      It's faster than the old compile slurpy Dict hack.

    • Type::Tiny's constraint parameter may be a string of code.

      isa => Int->where('$_ % 2 == 0')  # even numbers only
    • Types::Standard::CycleTuple added.

      my $type = CycleTuple[Str, ArrayRef, Int]; $type->assert_valid( [ "foo", [], 42, "bar", [], 21 ] ); # ok $type->assert_valid( [ "foo", [], 42, "bar", [], 2.1 ] ); # throws exc +eption
    • Types::Standard::RegexpRef now accepts blessed objects where $object->isa('Regexp'). This plays better with re::engine::* pragmas.

    • Fixed bug where Types::Standard::Int would sometimes accept an overloaded object. (It never should.)

    • Various performance enhancements and bug fixes.

Perl 5.26.0 Available
2 direct replies — Read more / Contribute
by kcott
on May 31, 2017 at 01:09

    The latest version of Perl, 5.26.0, has just been released.

    Here's the changes since 5.24.1: perldelta.

    I've been using 5.25.9 (developer release) for a while because I wanted the Unicode 9.0 support. This included new features now available in 5.26.0. A couple I particularly liked are:

    Indented Here-documents

    This allows you to now write (after a couple of levels of indentation):

    { ... { ... my $boilerplate = <<~'EOT'; Boilerplate text ... EOT ... } ... }

    Previously, without being able to add the tilde, meant code typically looked liked this (and the readability gains from indenting code were somewhat diminished):

    { ... { ... my $boilerplate = <<'EOT'; Boilerplate text ... EOT ... } ... }
    New regular expression modifier /xx

    While the '/x' modifier allows whitespace in most of a regex to improve readability, the '/xx' modifier allows whitespace in bracketed character classes also. This can be used to separate ranges and individual characters. As a quickly contrived example to capture the first and last character of strings starting with alphanumerics and ending with certain punctuation characters:

    /^([A-Za-z0-9]).*?([!@#$%^&*])$/ / ^ ( [A-Za-z0-9] ) .*? ( [!@#$%^&*] ) $ /x / ^ ( [ A-Z a-z 0-9] ) .*? ( [ ! @ # $ % ^ & * ] ) $ /xx

    It's been discussed here a few times recently, but also note: Removal of the current directory (".") from @INC

    While I was writing this, I was also installing 5.26.0 (under perlbrew). I see it has already completed successfully: so that much works and, at least for me, didn't take very long.

    — Ken

Free Perl6 book
3 direct replies — Read more / Contribute
by zentara
on May 29, 2017 at 09:18
    Hi, there was alot of posts recently concerning books for Perl6. In the Perl Newsletter today, Think Perl6 was announced. A restricted free pdf download is also available, under the Creative Commons License . See Think Perl6 .

    Remember, before commenting, I have not read it yet, but upon a speed-read, it looks like a nice way for Perl5'ers to get used to the more efficient syntax usage in Perl6.

    I'm not really a human, but I play one on earth. ..... an animated JAPH
The Perl Conference Amsterdam 2017 - CFP is open
No replies — Read more | Post response
by Tux
on May 27, 2017 at 10:05

    We're on-line. Finally:

    We invite you to participate in The Perl Conference, which will take place in August 2017 in Amsterdam, The Netherlands. These meetings were formerly known as YAPC::EU, the yearly meeting of Perl Mongers in Europe.

    The Perl conferences started off as grassroots user meetings, with discussions among Perl Mongers, and has grown from there. The focus is on enjoying the ideas of others, discovering new concepts, and feeling the enthusiasm of fellow programmers in the Perl (5) and Perl 6 programming languages.

    This years' theme is: High-end Perl. We are open for contributions: sponsors and potential speakers, please continue reading this page.

    Call for papers can be found here.

    Hope to meet a lot of you folk there in person.

    Enjoy, Have FUN! H.Merijn
The 2017 Perl Conference in Washington DC (YAPC::NA::17) is June 18-23.
No replies — Read more | Post response
by davido
on May 26, 2017 at 16:36

    The Perl Conference, 2017 will be held this year in Washington DC, at the US Patent and Trademark Office, from June 18 through June 23rd. This is the conference that many of us have affectionately known as YAPC::NA::17.

    If you haven't registered yet, please do so as soon as possible. We want to make sure we're providing the best possible experience for our participants, and to that end, accurate registration counts are helpful, plus there is still time to get the early-bird rate.

    The conference website is:

    We have talks scheduled from many of the best speakers known to the Perl community; Damian Conway, Sawyer X, Randal Schwartz, Mark Jason Dominus, Ricardo Signes, and so many other strong speakers that I feel silly having mentioned the few that I did.

    For those seeking additional enlightenment there are tutorials and master classes offered (by additional registration) on topics such as:

    • Perl in a Day (John Anderson)
    • Introduction to Moose (Dave Rolsky)
    • Perl Second Best Practices (Randal Schwartz)
    • Unicode and Associated Punishments (Ricardo Signes)

    The conference is being held in the amazing US Patent and Trademark Office, and will feature an event in the National Inventors Hall of Fame Museum.

    Early registration cost is $250, and late registration (Main event T-minus 14 days) will be $350, so there is still time to get your ticket, but you'll want to act sooner than later.

    From the Perl Foundation Conferences Committee I would like to thank all of the organizers who have been working for many months on this, and who are currently neck deep in work tying up loose ends and caring for the many details. It will be a great conference because of everyone in the Perl community who attends and participates, but it couldn't be a great conference without those organizers who have devoted so much of their time and energy laying the foundation for the rest of us to build upon.

    I am excited and can't wait to see everyone there.

    Also posted to


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!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • 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 sunlight beams...

    How do I use this? | Other CB clients
    Other Users?
    Others about the Monastery: (4)
    As of 2017-12-15 07:02 GMT
    Find Nodes?
      Voting Booth?
      What programming language do you hate the most?

      Results (419 votes). Check out past polls.