One of the popular exercises I set on our Perl courses goes something like ...

Write a program to ask the user to enter four numbers each between the value of 1 and 6. If the user enters a number below 1 or over 6, ask him to enter that number again. If the user enters the word END, stop reading numbers.

Print out the count, average and total of all the numbers entered. Take care to print an appropriate error message for the average if no numbers were entered.

and I then add Please try to do the following exercise WITHOUT using the words "while" or "if" in your program. which encourages the use of a for loop, lazy operators, and constructs such as unless and ? ... :, even though in real life you would use at lead one if for this task.

I set the same exercise in Ruby earlier today - unusually, this week's group is not converting from another language such as Perl where such constructs are familiar - they've done a little C and Java, where the options are limited and I wanted to gently encourage them to try these new and powerful facilities. Sample program - [here] and a comparative example in Perl [here].

What do I notice as I look at the two programs? A remarkable similarity in the concepts. A simplification in Ruby in terms of not having to think if I'm comparing strings and numbers, but a need in Ruby to convert with .to_s and .to_i methods. The lack of $ on local variable names in Ruby, which means that I can't just drop a variable into a string to output it - I need to use #{...}. And the use of methods in Ruby such as .chomp as it's so much an object oriented language. With all those changes, every single line of code is different ...

If you want to learn Perl, take a look at our Perl Courses. If you want to learn Ruby, take a look at our Ruby Courses. In both cases, we've options to help you learn whether you've never programmed before, if you're experinced in one of the pair and converting, or - as is more usual - if you're somewhere between.

(written 2012-02-21, updated 2012-02-25)

Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles

P206 - Perl - More Loops and Conditionals[3914] While, for, foreach or something else to loop. - (2012-11-06)[3398] Perl - making best use of the flexibility, but also using good coding standards - (2011-08-19)[3200] How a for loop works Java, Perl and other languages - (2011-03-12)[2972] Some more advanced Perl examples from a recent course - (2010-09-27)[2967] Multiway branches in Perl - the given and when syntax - (2010-09-22)[2892] Alternative loops and conditionals in Ruby and Perl - (2010-07-28)[2832] Are you learning Perl? Some more examples for you! - (2010-06-27)[2824] A pint of Black Rat, and a lazy barman - (2010-06-25)[2817] Setting a safety net or fallback value in Perl - (2010-06-19)[2815] switch and case, or given and when in Perl - (2010-06-17)[2711] For loop - checked once, or evety time? Ruby v Perl comparison and contrast - (2010-04-07)[1825] Question Mark - Colon operator (Perl and PHP) - (2008-10-08)[1696] Saying NOT in Perl, PHP, Python, Lua ... - (2008-07-04)[1582] Ruby, C, Java and more - getting out of loops - (2008-03-19)[1220] for loop - how it works (Perl, PHP, Java, C, etc) - (2007-06-06)[1191] Smart English Output - via PHP and Perl ? : operator - (2007-05-18)[962] Breaking a loop - Ruby and other languages - (2006-12-03)[657] The ternary operator in Python - (2006-03-25)[299] What - no switch or case statement? - (2005-05-03)[138] Perl - redo and last without a loop - (2004-12-02)

Q102 - Choosing your language[3785] Programming languages - what are the differences between them? - (2012-06-27)[3764] Shell, Awk, Perl of Python? - (2012-06-14)[3558] Python or Lua - which should I use / learn? - (2011-12-21)[3169] Rekeying a table - comparison in #Ruby #Perl and #Python - (2011-02-14)[2866] Ruby - how does it compare and where is it the right language? - (2010-07-11)[2700] The same very simple program in many different programming languages - (2010-03-31)[2536] All the Cs ... and Java too - (2009-12-13)[2535] When should I use Java, Perl, PHP, or Python? - (2009-12-13)[2507] Admission - (2009-11-19)[2048] Learning to program in PHP, Python, Java or Lua ... - (2009-02-19)[2001] I have not programmed before, and need to learn - (2009-01-19)[1990] Speaking all the languages - (2009-01-12)[76] Learning to program in - (2004-10-07)

This is a page archived from The Horse's Mouth at
http://www.wellho.net/horse/ -
the diary and writings of Graham Ellis.
Every attempt was made to provide current information at the time the
page was written, but things do move forward in our business - new software
releases, price changes, new techniques. Please check back via
our main site for current courses,
prices, versions, etc - any mention of a price in "The Horse's Mouth"
cannot be taken as an offer to supply at that price.