2009-11-01から1ヶ月間の記事一覧

Vornado サーキュレーター

Vornado サーキュレーター(空気循環器) ホワイト 【6~12畳用】 530J出版社/メーカー: VORNADO(ボルネード)メディア: ホーム&キッチン購入: 5人 クリック: 197回この商品を含むブログ (11件) を見る急に寒くなったため、先日購入した Vornado サーキュレータ…

given-when はやっぱり強力

5.10 からの新構文 given-when はやっぱりなかなか強力。foreach-when とあわせ、使えるところは多そうだ。内容は結構豊富なので書ききれないが・・・。

ファイルテストを積み重ねる

これも 5.10 から。 if (-r $file and -w _) { # read and write とやっていた(_ は読み込み済みのstat を参照)ところを・・・ if (-w -r $file) { # read and write と書けるようになる。評価はファイル名に近い順に行われる。おーこれは地味に便利。

デフォルトを設定する // 演算子

こちらも、5.10 から。defined-or 演算子というらしい。 $a = $b // 1; $b が undef の場合、1 が $a にセットされる。 しかし // とはまた違和感のあるものを・・・。

名前付きキャプチャ

こちらも Perl 5.10 から、ついに、キャプチャが名前付きで指定できるように。 use 5.10.0; my $a = "aaefbbbaacde"; if ($a =~ m/(?<name>.)\g{name}{2}/) { say "match: $&"; say "name: $+{name}"; } 実行すると、 match: bbb name: b上記は、(? で、name とい</name>…

each() のイテレータのリセット方法

each() ってこういうやつである。 while (my ($k, $v) = each %hash) { say $k, $v; } ハッシュはそれぞれイテレータを持っていて、上記のように each() を次々に呼ぶことで違う値が返る。まずこれで問題が起きることは無いと思うが、まれに、while ループ中…

&& と and の違い

今更の話ではあるんだけど、まとめ。Perl では、 && と and と or という同じ意味の演算子が用意されている。 and、or は使わない方がいい、&& と || を使いなさいと教える場合もあるかもしれない。違いは、 「代入と三項演算子より優先順位が高いか低いか」…

正規表現の文字クラスの追加

Perl 5.10 からいくつか便利なものが追加されているが、中でも、\R は便利そう。あらゆる種類の行末文字にヒットする。どのOSを使ってても安心である。 今までからも存在したが、TIPS 的なもの。 \d → 数字 \D → 非数字 [\d\D] → (改行を含む)すべての文字…

正規表現の後方参照の方法

Perl 5.10 から、後方参照の方法が追加された。 use 5.10.0; my $a = "aefbbacde"; if ($a =~ m/(.)\1/) { # 今まではこう say "match $&"; } if ($a =~ m/(.)\g{1}/) { # この書き方も出来るように。 say "match $&"; } \1 の書き方だと、パターンのリテラ…

初めてのPerl 第5版 再読

初めてのPerl 第5版作者: Randal L. Schwartz,Tom Phoenix,brian d foy,近藤嘉雪出版社/メーカー: オライリージャパン発売日: 2009/10/26メディア: 大型本購入: 22人 クリック: 293回この商品を含むブログ (41件) を見るということで、「初めてのPerl」の第5…

undef の意味。

print $a if $a; print $a if defined $a; 上の文と下の文の違いはほとんど無い。一点だけ違うのは、0 もしくは、"0" が $a に設定されていた場合。「if $a」 と書いた場合は、0、"0" は偽と判断されるので、何も表示されない。「if defined $a」と書いた場…

substr() の地味に便利な使い方

my $string = "hello world!"; substr($string, 0, 5) = "Goodbye"; # $string -> "Goodbye world!" 普通はとっさに s/// を使ってやっちゃいそうだが、これ結構使えるとこありそうだ。速度はこっちの方が速かろう。(それを気にするのはよっぽどシビアな状…

state 変数

以下のように使う。プライベートな永続的変数になる。 &countup for(1..10); # 1 から 10 までカウントアップ sub countup { state $num = 0; $num++; say $num; }

Plantronics Voyager 855 の感想

PLANTRONICS Bluetooth ヘッドセット Voyager 855 【輸入品】(USA小売パッケージ)出版社/メーカー: Plantronicsメディア: エレクトロニクス購入: 3人 クリック: 28回この商品を含むブログ (7件) を見るこちら、Blootooth で無線でかつ、小型。音楽も聴ける…