Running is therapy

a blog about running, cats and Linux.
  • Home
  • Current Schedule
  • Personal Records
  • Upcoming Races

Consider this

Published by Nathan Powell on June 16, 2006 07:53 am under programming

A difference I discovered between Ruby and Perl.

Perl:

my @foo = (1, 2, 3);
print $foo[0] + $foo[2] . "\n";
print "This is the number " . $foo[2];

If you popped that into a perl scipt it would print:

4
This is the number 3

Pretty straightforward. However similar code in Ruby, if you expect it to work like Perl, would have a different outcome.


foo = [1, 2, 3]
puts foo[0] + foo[2]
puts "this is the number " + foo[2]

Popping that into a Ruby script, would cause an error:


test.rb:5:in `+': can't convert Fixnum into String (TypeError)

As you can see Ruby enforces typing on you, in order to use a number as a string, you have to cast it to a string. (Namely: foo[2].to_s).

Eh. I am not sure how I feel about that. I am sure strong typing advocates love it. I have gotten used to Perl’s behavior though. Perl does what I mean. If I concat an int to a string, well obviously I meant for the interpreter to use it as such. However, and this is the opposing point of view if you want to argue, it can, for those unfamiliar with it’s behavior have unintended consequences.

Much like the new user who doesn’t understand scalar and list context in Perl, weird things happen, and no errors are thrown. That I guess can be confusing.


my $bar = @foo;

Prints, 3

No Comment

Comments are closed.

Posting your comment.

  • Search

  • Archives

    • August 2008 (7)
    • July 2008 (11)
    • June 2008 (14)
    • May 2008 (15)
    • April 2008 (10)
    • March 2008 (16)
    • February 2008 (17)
    • January 2008 (37)
    • December 2007 (21)
    • November 2007 (30)
    • October 2007 (29)
    • September 2007 (22)
    • August 2007 (30)
    • July 2007 (49)
    • June 2007 (32)
    • May 2007 (29)
    • April 2007 (38)
    • March 2007 (26)
    • February 2007 (25)
    • January 2007 (23)
    • December 2006 (10)
    • November 2006 (12)
    • October 2006 (9)
    • September 2006 (9)
    • August 2006 (5)
    • July 2006 (13)
    • June 2006 (9)
    • May 2006 (8)
    • April 2006 (11)
    • March 2006 (12)
    • February 2006 (12)
    • January 2006 (13)
    • December 2005 (15)
    • November 2005 (19)
    • October 2005 (8)
  • Categories

    • blather (60)
    • books (10)
    • computers (177)
    • cooking (1)
    • economics (3)
    • emacs (3)
    • football (1)
    • gaming (1)
    • hiking (5)
    • housekeeping (5)
    • lifehacking (7)
    • music (3)
    • paddling (2)
    • personal (1)
    • politics (21)
    • programming (67)
    • running (228)
    • smoking (40)
    • sysadmin (9)
    • tlc (10)
    • Uncategorized (1)
  • Pages

    • Current Schedule
    • Personal Records
    • Upcoming Races

Copyright © 2008 Running is therapy
WordPress Theme based on Light Theme