()

Rubyのprintメソッド、()を省略できるらしいですが、省略した時とつけたときで、挙動が違って、
どういうこっちゃーってなってます。

def hello(name)
    print ("Hello, ", name,".\n")
end

hello("Ruby")

上のコードをhello_with_name.rbとして保存して、
ruby hello_with_name.rbとすると

hello_with_name.rb:2: syntax error, unexpected ',', expecting ')'
    print ("Hello, ", name,".\n")
                     ^
hello_with_name.rb:2: syntax error, unexpected ')', expecting tCOLON2 or '[' or '.'
hello_with_name.rb:5: syntax error, unexpected $end, expecting keyword_end

シンタックスエラーが出てきます。

上のコードは参考書にそのまま載ってたものなので、動くはずなんですが、動かない・・・

使ってるRubyのバージョンによる仕様の違いですかね。

とりあえず、()を外して、それ以外はそのままにして

def hello(name)
    print "Hello, ", name,".\n"
end

hello("Ruby")

で保存して、ruby hello_with_name.rbをしてみると

Hello, Ruby.

と普通に表示されます。

んー、なんでしょうかね、これは。

文字列と変数を区切って、ひとつのprintで出力させようとすると()をつけるとシンタックスエラーが出てくるみたいです。

原因がよくわかりませんが、()外したら、ちゃんと出力されるので、
文字列と変数をひとつのprintで出力したいときは、()は付けないようにしようと思います。