return the same asecho -e "1\n2\n3\n4" | perl -lne 'print if 2..2'
whileperl -le 'print 2..2'
returns something very different fromecho -e "1\n2\n3\n4" | perl -lne 'print if 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.)perl -le 'print 2...2'
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
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.$x = $x ....... $y ...... $z ...... $x; $y = $x ...... $y ........... $z; $z = $x .... $y ........ $z;
In reply to Re: Re: Perl treats '...' the same as '..'. Why?
by sfink
in thread Perl treats '...' the same as '..'. Why?
by samtregar
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |