Gravatar being both a ruby and python fan, I agree with your impression.
But I can make you slightly more happy by telling you that many perlish constructs are slowly fading away.
I.E. something like

print line if /match/

is deprecated and will be removed.
The same goes for most of the fugly $(*|&-_)


As you said YMMV, but I think that flexibility of the Ruby grammer is a plus comparing to Python. It allows you to create very powerfull DSL languages. One example is Rails.


Gravatar That the Perlisms are present in Ruby only means it's easy to transition from Perl, but in no way do they represent "The Ruby Way". Nobody uses them.

Yes "There Is More Than One Way To Do It" but Ruby culture is pretty consistent and elegant. I'll take this approach over "there's only *one* way to do it" every time. Funny enough, in this respect Rails (the most famous of Ruby web-app frameworks) is very "Pythonic" with its philosophy of Convention over configuration, while really taking advantage of Ruby's expressiveness.

As always, it's a matter of taste.


Gravatar ObNitpick: 'you can often omit', not 'emit'.


Gravatar I agree that the $x globals are annoying, but they're done that way to add a little flexibility down the line.

Try requiring the 'English' standard library, which aliases the $x variables with much nicer names.

$! becomes $ERROR_INFO and $. becomes $INPUT_LINE_NUMBER, for example.