Hatena::Groupgeneration1986

ギーク目指してみる?

2008-11-06

初めてのPerl 2章 スカラーデータ 2.4 ~ 2.5.5 (08/08/14)

| 12:56 | 初めてのPerl 2章 スカラーデータ 2.4 ~ 2.5.5 (08/08/14) - ギーク目指してみる? を含むブックマーク

今回は要約というか自分のためのメモのみ。

2.4

警告を有効にするには、

1. 実行するときにコマンドラインから -w オプションを指定する

2. #! 行に -w オプションを指定する

2通りの方法がある、らしい。が、バージョン違う Perl で実行したときに、元々警告表示されてないプログラムで警告表示されたりとか、その逆もありうるとか。


2.5

$ のあとに Perl 識別子(英文字か下線で始まって、必要ならさらにその後ろに英文字・数字・下線を続けたもの。大文字と小文字は別物扱い)がついてるやつは、スカラー変数

ちなみに、シェルでは、値を取り出すときには $ をつけるけど、新しい値を代入するときは要らない。awk や C では $ をまったくつけない。

これは PHP とかにも言えることだけど、変数名は用途がわかるようなものにすること。あと、せっかく下線が使えるんだから、変数名は読みやすく、理解しやすくすること。

先頭が大文字なのは特別なケース。大文字のみの名前だったら、その変数は特別なもの。


Perl も代入は = で表す。

ex.) $fred = 17;


代入の両側に同じ変数が現れるような式が出てきたら、二項代入演算子を使う。

ex.) $fred += 5; は $fred = $fred + 5; と等価だし、 $barney *= 3; と $barney = $barney * 3; も等価。文字列だったら、 $str = $str . " "; と $str .= " "; は等価


print()演算子は、 Ruby のときと違って () が不要な代わりに、行末に ; をつける。$ とかの特別な意味を打ち消すときは、これもやっぱり \ を記号の前につける。

文字列の中でスカラー変数を展開するときは、スカラー変数を生のまま書き入れるもよし、 . で繋げるもよし。もし、展開しようとしてるスカラー変数に値が代入されてなければ変わりに空文字列が使われる。変数名を区切るときは、そこで一旦文字列を切ってしまうか、変数名だけを {} で囲むとか。

ex.) print "fred ate $n ${what}s.\n";

hogeloghogelog2008/11/06 19:31chomp($half = );
などと表示されてる部分は
chomp($half = <>);
ですよね。<>がタグと認識されてしまい、削除されています。

はてなダイアリーでソースコード貼るときはpreタグかはてな記法のpre記法など使わないとこのように表示が変になると思います。
http://generation1986.g.hatena.ne.jp/hogelog/20081106

hogeloghogelog2008/11/06 19:37あと
<、>、&などの文字は
&lt;、&gt;、&amp;
と実体参照に置き換えて書くという方法がありますね。めんどうなのであんまりしませんけど。

saitoK-yasaitoK-ya2008/11/16 12:35ぁ、ありがとうございます!
他のとこちゃんと書き換えてたのに見落としてました;

StephaneStephane2013/01/16 08:50A silmpe and intelligent point, well made. Thanks!

txvbpxtydxtxvbpxtydx2013/01/18 10:25NOVgbf , [url=http://jpensbhwhyyf.com/]jpensbhwhyyf[/url], [link=http://wjmwnjvhpozi.com/]wjmwnjvhpozi[/link], http://xhndyjmzxsae.com/