While I agree the & isn't needed here, it's not the bitwise operator in this case. That would require two operands — to bitwise "and" something with itself you'd have to write e.g. 42 & 42.

Rather, the & here is the subroutine sigil.  While it was required in the early days of Perl, it's optional these days, and its use is discouraged except for special purposes, such as to take a reference of a subroutine (\&foo), or to circumvent prototypes (see perlsub).

And the latter is also the reason you shouldn't use & with constants:  constants are subroutines with an empty prototype, which makes Perl optimize the function call away. Telling Perl to circumvent the prototype is not a good idea as it prevents the optimization:

$ perl -MO=Concise -e 'sub foo(){42}; print foo' 6 <@> leave[1 ref] vKP/REFC ->(end) 1 <0> enter ->2 2 <;> nextstate(main 2 -e:1) v:{ ->3 5 <@> print vK ->6 3 <0> pushmark s ->4 4 <$> const[IV 42] s ->5 -e syntax OK $ perl -MO=Concise -e 'sub foo(){42}; print &foo' 8 <@> leave[1 ref] vKP/REFC ->(end) 1 <0> enter ->2 2 <;> nextstate(main 2 -e:1) v:{ ->3 7 <@> print vK ->8 3 <0> pushmark s ->4 6 <1> entersub[t2] lK/TARG,AMPER,1 ->7 - <1> ex-list lK ->6 4 <0> pushmark s ->5 - <1> ex-rv2cv sK/8 ->- 5 <#> gv[*foo] s ->6 -e syntax OK

In reply to Re^7: Using IO::CaptureOutput in a child process to caputre STDOUT and STDERR by Eliya
in thread Using IO::CaptureOutput in a child process to caputre STDOUT and STDERR by clintonm9

Title:
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, details, 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, summary, 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.