in reply to Forking multiple processes at once, but limiting how many at a time

And one more.
It is not good idea to use quotes in Hash or hashref.
Coz $hosts->{'all'} == $hosts={ 'all' => 'foo.bar'};

When you use => operator it already qouted *all* key. So your code is look like $hosts->{'\'all\''};
Most times it works right. But sometimes it could be hard catched error.
  • Comment on Re: Forking multiple processes at once, but limiting how many at a time

Replies are listed 'Best First'.
Re^2: Forking multiple processes at once, but limiting how many at a time
by Athanasius (Archbishop) on Dec 21, 2014 at 06:50 UTC

    Hello builat,

    I upvoted this, because it raises an interesting issue, but I think your conclusion is incorrect. Consider:

    16:36 >perl -wE "my %h = (Fred => 'Wilma'); my ($k, $v) = each %h; say + length $k;" 4 16:36 >perl -wE "my %h = (qq['Fred'] => 'Wilma'); my ($k, $v) = each % +h; say length $k;" 6 16:36 >perl -wE "my %h = ('Fred' => 'Wilma'); my ($k, $v) = each %h; s +ay length $k;" 4 16:37 >

    According to the documentation:

    The => operator is a synonym for the comma except that it causes a word on its left to be interpreted as a string if it begins with a letter or underscore and is composed only of letters, digits and underscores....

    Otherwise, the => operator behaves exactly as the comma operator or list argument separator, according to context.

    Since the string 'all' contains single quote characters, it does not satisfy the criterion “begins with a letter or underscore and is composed only of letters, digits and underscores.” So, it is not subject to the fat comma’s “special quoting behaviour”, but is treated as a normal string expression; that is, the quotation characters function as operators (like q//) and do not make it into the final hash key string.

    Hope that helps,

    Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,

      I have try it minute ago. You absolutely right. Thank you!