From: yamakawa@... Date: 1997-11-09T17:35:39+09:00 Subject: [ruby-list:5222] Re:ruby for perl users 山川です 初めて書き込みします。よろしく 中村さんへの回答です。perl から ruby への ロゼッタストーンになれば幸いです。 「ここから」、「ここまで」を切り取って実行して みてください。間違いやはづしているところもある かも知れませんが、これは試練だと思ってください。 ruby の webpage 以外に参考書は CQ出版社のTRY!PC 11月号に「ruby入門」があります。 #----------------------ここから #!/usr/local/bin/ruby #中村です。 #Perl ユーザが感じそうな素朴な疑問を挙げてみました。 #オブジェクト指向とか、そういう以前の話です。 #マニュアルとかユーザガイドとか FAQ 見れば解決する #問題かも知れませんが、多分こういうのをすぐに疑問に #感じると思うので…。 #答えも書けると良いのですが、 #うまい答えは私には書けません (^_^; print "------------------------- No 1\n" #◎ Perl だと #$name = "Nakamura"; #print "I am $name\n"; #とか書いてましたが、 #ruby ではどう書くのですか? #print "I am $name\n"; #と書いてもうまくいきませんが。 name="Nakamura" print "I am #{name}\n" print "------------------------- No 2\n" #◎ 文字列の連結 #$hoge = "foo" . "bar"; #ってやっていましたが、ruby ではどう書くの? #hoge = "" hoge = "aaaaa" + "bbbbbbbbbbbbb" print hoge, "\n" print "------------------------- No 3\n" #◎ 部分文字列を切り出したいのですが、substr は? print hoge[4..6],"\n" print "------------------------- No 4\n" #◎ chop, chomp はありますか? print hoge.chop, "\n" print "------------------------- No 5\n" #◎ 文字列比較 eq, ne とかありますか? ## String クラスメソッド <=> が使える ## == > >= < <= も使える print "------------------------- No 6\n" #◎ 配列の初期化とアクセスはどうやったら? hoge=[] print "------------------------- No 7\n" #◎ 連想配列の初期化は? #%hogehoge = ('smtp' , '25', 'finger', '79'); #のような…。 #◎ 連想配列のアクセスは? a={"a" => 1,"b" => 2,"c" =>3 } a.each {|x,y| print x," ",y,"\n"} a["a"]="oooo" print a["a"],"\n" print "------------------------- No 8\n" #◎ for($i = 0; $i < 3; $i++) { } #とかはどう書けば良いの? for i in 0..2 print i,"\n" end print "------------------------- No 9\n" #◎ foreach は使えるの? b=[] b[0]=4 b[1]=1 b[2]=2 b[3]=3 b.each {|x| print x,"\n"} print "------------------------- No 10\n" #◎ while(<>) { } #とか良く使っていたのですが、 #これはどう書いたら良いの? ##while gets ## print ##end print "------------------------- No 11\n" #◎ 置換したいのですが、s///; tr///; に #相当するものはありますか? a="abcabc" print a.tr("abc","ABC"),"\n" print a.gsub("a","d"),"\n" print "------------------------- No 12\n" #◎ 日本語は使えるの? ## もちろんです 日本生まれですから ## 私もこの点に期待して勉強しています print "------------------------- No 13\n" #◎ サブルーチンと引数の扱い方は? def f(a,b=9) a+b end print f(1,2),"\n" print f(3),"\n" print "------------------------- No 14\n" #◎ ファイルの扱い方は? ##i=open("rb") ##while i.gets ## print ##end #-------------------ここまで