Normally, the diamond operator takes all the file names specified on the command line as arguments,

Only when ARGV is provided as the handle or not handle is provided (since the diamond operator uses ARGV by default). That's because the diamond operator does none of that. It's all ARGV's doing.

combines the corresponding files into one big file

Yes, without actually combining the files on disk or in mem. In fact, using eof (with no argument or parens), you can detect when it's going to move to another file.

and then assigns a line from the big file to $_ each time through the loop

No, the diamond operator neither creates a loop nor assigns to $_. while provides the looping.

However, if you do not specify any file names as arguments on the command line, then the diamond operator reads from STDIN.

Again, only if ARGV is used as the handle since it's all ARGV's doing.

if you specify a file name as: -, then the diamond operator will read from STDIN for that portion of the big file.

ARGV uses the two arg version of open. It also allows arguments such as 'zcat compressed.gz |'. In other words, without using a shell, you can achieve the same using bash's <( zcat compressed.gz )


In reply to Re^3: -p option with __DATA__ by ikegami
in thread -p option with __DATA__ by jdalbec

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.