t/run/switches.t seems to be failing because of some extra newlines
being thrown around. This seems to be something more than the usual
"pipes sometimes double up \n" problem.
Here's the simplest way to illustrate it. Take the -M test:
not ok 11 - -M
# Failed at t/run/switches.t line 144
# got '<swtest>
# '
# expected '<swtest>'
Extra newline at the end. Maybe it's something to do with piping.
Well, if we try it manually:
$ cat swtest.pm
package swtest;
sub import { print map "<$_>", @_ }
1;
$ perl "-Mswtest" -e 1
<swtest>
$
So it's not the pipe. Something in vmsperl has decided that you always
need a newline at the end of a print.
$ perl -e "print 'foo'"
foo
$
Even explicitly setting the output record seperator doesn't help:
$ perl -e "$\ = q{}; print 'foo'"
foo
$
Interestingly enough, it doesn't hurt either:
$ perl -e "$\ = qq{\n}; print 'foo'"
foo
$
and just to show that it does have an effect:
$ perl -e "$\ = qq{wibble}; print 'foo'"
foowibble
$ perl -e "$\ = qq{wibble\n}; print 'foo'"
foowibble
$ perl -e "$\ = qq{\nwibble}; print 'foo'"
foo
wibble
$ perl -e "$\ = qq{\nwibble\n}; print 'foo'"
foo
wibble
$
Compare with what is supposed to happen:
$ perl -e 'print "foo"'
foo$
No mandatory newline.
--
Michael G. Schwern <[EMAIL PROTECTED]> http://www.pobox.com/~schwern/
Perl Quality Assurance <[EMAIL PROTECTED]> Kwalitee Is Job One
<purl> Hey, Schwern! THERE IS A HUGE GAZORGANSPLATTEDFARTMONGERING-
LIGHTENINGBEASTASAURSOPOD BEHIND YOU! RUN, BEFORE IT GAFLUMMOXES YOUR
INNARDLYBITS!