Mail::Internet->new( ARG, OPTIONS );
This constructor is waiting for a file descriptor or a reference to an array
From the doc :
ARG is optional and may be either a file descriptor (reference to a GLOB) or a reference to an array.
So ARGV[0] is your file to be opened (or slurped).
Almost Same thing with $parser->parse( INSTREAM );
From the doc :
The INSTREAM can be given as an IO::File, a globref filehandle (like \*STDIN), or as any blessed object conforming to the IO:: interface (which minimally implements getline() and read()).
hth,
PooLpi