in reply to Change from @a=(1..99) to @a=\STDIN\ = problems

What are you supplying to STDIN? The only reason for any different output is because of different input.

Changing my @a=(1..99); to my @a=<STDIN>; chomp @a; made no difference to my results.

For your reference, I ran...

perl jc.pl one two three four five six seven eight nine 10 11 12 13 14 15 16 17 1 +8 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 4 +1 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 6 +4 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 8 +7 88 89 90 91 92 93 94 95 96 97 98 99 emacs -nw jc.pl perl -e 'print $_, "\n" for (1..99)' > a perl jc.pl &lt; a one two three four five six seven eight nine 10 11 12 13 14 15 16 17 1 +8 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 4 +1 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 6 +4 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 8 +7 88 89 90 91 92 93 94 95 96 97 98 99
Hopefully, there's a difference between my commands and yours, and this difference is obvious?

Your input file does consist of exactly

1 2 3 etc...
right? With each number on a line of its own, and no leading or trailing spaces?

edit - Petruchio Mon Oct 1 00:14:06 UTC 2001: Replaced PRE tags with CODE tags.