in reply to Re: Perl treats '...' the same as '..'. Why?
in thread Perl treats '...' the same as '..'. Why?

Well, it does seem a little odd to me to have
echo -e "1\n2\n3\n4" | perl -lne 'print if 2..2'
return the same as
perl -le 'print 2..2'
while
echo -e "1\n2\n3\n4" | perl -lne 'print if 2...2'
returns something very different from
perl -le 'print 2...2'
I understand why it does, but it would seem preferable to either disallow ... in list context, or make it behave "the same" in list and scalar contexts. (So the list 2...2 would be 2,3,...,INTMAX, and the list a()...b() would be the same as a()..b() unless a()==b(), in which case it would be a(),...,INTMAX.)

Although, come to think of it, I think what would really make sense is if someone wrote a source filter than numbers all of the operators, with .. in slot 2 and ... in slot 3, so that you can use a sequence of periods of the appropriate length to choose any operator in Perl. Perl likes gathering up different programming paradigms, right? (Functional, OO, logical, ...) So this would make it easier to implement the genetic algorithm style, where you start off with something simple like

$x = $x ....... $y ...... $z ...... $x; $y = $x ...... $y ........... $z; $z = $x .... $y ........ $z;
and then you can easily mutate and interbreed code merely by changing the number of periods. Repeat until you get the answer desired. Some of my debugging sessions already closely resemble this.