Issue #5352 has been updated by Joey Zhou.


Nobuyoshi Nakada wrote:
> I'm somewhat negative.
> It looks like Perl's "<>" but is pretty different, so I'm afraid that it would be also confusing.

There are a few things different in Ruby and Perl.

  $foo is not a scalar, @bar is not an array, %w is not a hash

  "re = /pattern/" in Ruby means assigning a regexp to re, but in Perl "$re = /pattern/" means "$re = $_ =~ /pattern/"...

So I think the difference is not a problem, some differences already exist.

"<<" of Perl has two meanings: shifting bits and here document. One is for the integers and the other is for the string, maybe leading to less confusing. However, in Ruby, "<<" is instance method of String and IO/File, and here document is also string, the probability of confusing is larger, I'm afraid.

----------------------------------------
Feature #5352: How about using <> to represent Here Document?
http://redmine.ruby-lang.org/issues/5352

Author: Joey Zhou
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 


"<<" is a frequently used method in text manipulation. Meanwhile, it's also the beginning token of a here-document.
 Sometimes it may be confusing to newbies.

Unlike Perl, in which "<>" is a very very frequently used operator to read lines from a filehandle, in Ruby, "<>" has no meaning. So I think it can be used to represent Here Document, so as to reduce the possibility of misunderstanding method "<<" and here-document token "<<". And In my opinion, <> is more clear than <<, because it looks like kind of brackets.

For example,

  str = <SECT1>.upcase + <SECT2>.downcase
  aaaaaa
  SECT1
  XXXXXX
  SECT2

may be clearer than:

  str = <<SECT1.upcase + <<SECT2.downcase




-- 
http://redmine.ruby-lang.org