On Aug 24, 2004, at 10:01 PM, James Britt wrote:

> Also, a new edition of Programming Ruby is due quite soon.  It covers 
> 1.8, as well as topics not in the first edition.
>
> In the meantime, this site may help bridge the gap:
>
> http://phrogz.net/ProgrammingRuby/
>
> It links an online copy of the first edition of Programming Ruby (AKA 
> The Pickaxe Book) with wiki pages detailing changes in 1.8

Okay, this is a helpful link, but I found this there:

"Deprecate:

		 symbol variables ($1 etc)
		 regexp in conditional expression
		 range (../...) in conditonal expression
		 print with no argument == print $_
  (But these things are still around in Ruby 1.8, why would you suggest 
deprecating them? -- because Matz has said they will be deprecated in 
future versions. You can't deprecate them arbitrarily in the book, but 
you can call them out as not-future-proof.)"

Wow.  That shocked me.  Sounds like I better rethink some of the things 
I've been learning.  Let me ask some clarifying questions here:

"		 symbol variables ($1 etc)"

This one will kill me.  <laughs>  I'm very used to handling my 
substitutions this way, being a Perl guy.  Can I get an example of "The 
Ruby Way" to do a search and replace without these, please?

"		 regexp in conditional expression"

Does this mean something like:

if /Ruby/
	# ...
end

is not future-proof?  What is the correct fix?

if $_ =~ /Ruby/
	# ...
end

"		 range (../...) in conditonal expression"

I don't use this too often, but it can be a handy shortcut in places.  
Any reason this is considered bad?  I'm just curious.  Really, I guess 
I mean that question to apply to the whole list above.

I'm assuming it's because what's going on in these situations isn't 
always immediately obvious to readers of code.  If that's the case 
though, I have to say I disagree with the $1..$9 call.  That's a regex 
standard and downright handy.  It will be missed, by me at least.

Thanks.

James Edward Gray II