こういうとこで戸惑ったよ、っていうメモ。
同じ境遇の方がいれば、参考になればと思って。
JavaScriptからプログラミングに入っただけで、たいしてJavaScriptが書けるわけではないので、そのあたりはご留意とご容赦を・・。
この本なので基本記法くらいしか書かないかも。
関数呼び出しに()がいらない(こともある
# なにこれきもちわるい print "Hello, world!\n"; # Hello, world![改行] print 2 * 10; # 20 # なにこれきもちわr print (10 + 5) * 4; # print(10 + 5)が解釈されて、あとの * 4 はいりませんとエラー print((10 + 5) * 4); # 60 ってちゃんと動く
" と ' が違う動作
print 'あいうえお\n'; # あいうえお\n がそのまま出る print "あいうえお\n"; # あおいえお[改行] と解釈される。 # ダブルクオートだと、変数も展開される。
変数宣言に種類がある+中身が左側に寄る
# 宣言 $str1 = 'hoge'; @arr1 = (1,2,3,4); @arr2 = qw/1 2 3 4/; # これはなかなか・・ %hsh1 = ('name', 'hoge', 'age', 10); # なにこれきもちわるい %hsh2 = (name => 'hoge', age => 10); # まだマシやけど{}じゃないのね # 左側に寄るというか print($arr1[2]); # @arr1[2]じゃないのね print($hsh2{name}); # %hsh2.nameじゃないのね
こういうのをコンテキスト・・っていうの?
文字列の比較
# if($str == 'hoge'); 文字列の比較がしたいなら if($str eq 'hoge'); # それ用の演算子を使う
chomp()
末尾の改行(\n)を取ってくれる用途(最初は謎だった)の関数があって。
# $str = chomp(<STDIN>); こう書くとエラーになるので chomp($str = <STDIN>); # こう書く
というかこれに限らず変数への代入ってこう書かないといかん。
改行したりしなかったり
print "hoge"; print "fuga"; # hogefuga って出る!さっきはchomp()せなあかんかったのに!
もうちょっと読んだらPart.2を書きます・・。
Perlむずかしー。