Perl入学式第三回補講に行ってきました。

perl入学式

今回は補講ということで、小ぢんまりとした少人数での勉強会。
ほぼマンツーマンで質問もしやすく、色々と勉強になりました。


資料を読みながら、前回の復習とサンプル例題のコーディング。
一番最初のサンプルコードをエディタで打ち込み、ターミナルで実行。=>エラー

あれ?何が間違ってるんだろう?

よく見てみると、

>ruby sample.pl

いつもの癖で、Perlのコードをrubyで実行してました。そりゃ動かんわな。

講義の内容はすごく分かりやすく、色々なアドバイスも勉強になりました。
家に帰ってから、Perlで書いた例題をRubyでコーディングしてみました。

数字を入力して、式と答えを出力するコード
array = Array.new
puts("数字を10個入力して下さい>>>")
10.times do
array.push($stdin.gets.chomp.to_i)
end

num = 0
array.each do |item|
num += item
end

array.collect! do |item|
item = item.to_s + "+"
end

print(array.to_s.chop,"=",num,"\n")

文字当てゲームのコード
array = Array.new
anser = "ruby"

print("文字を入力して下さい>>>")
str = $stdin.gets.chomp
while anser != str 
print("不正解です。もう一度文字を入力して下さい。>>>")
array.push("'"+str+"',")
str = $stdin.gets.chomp
end

print("正解です!正解するまでに",array.size,"回の入力を必要としました。\n")
print("正解までに入力した文字列は、#{array.each {|item| item }}".chop,"です!\n")

 

今回Rubyで気づいたことは、Rubyにはインクリメントが無いんですね。
色々調べてみると、Rubyは超オブジェクト指向の言語なんで、何かするにはメソッド、そしていわゆるインクリメントは変数に対しての加算であったり減算なので、変数はオブジェクトでは無いから変数に対するメソッドは無い、だからインクリメントやデクリメントが無いそうです。

なるほど、納得です。不便だけど。

次週もPerl入学式#4出席予定。両方の構文が頭の中で混乱!ぱっと見た感じ似たようなPerlとRuby、でも、それぞれの記法の差がそれぞれの文化というか、考え方の違いそのものの様に感じました。

う〜ん、面白い。