Tips

bashのパス補完で.svnを無視する。

bashのTabによるパス補完。 もうこれなしでは生きていけないんだけど、たまーに不便に思うときがある。 それはsvnのworking copyをcdで潜っていくときのこと。 /home/shellcat/repos/workspaceにリポジトリをチェックアウトしたとして、 workspace/perl/FooB…

next, lastの裏芸。

うわ、こんなことできたんだ。 my $res = 0; { if (scalar(@ARGV) == 0) { $res = 1; last; } if ($ARGV[0] == 1) { $res = 2; next; } $res = 3; } print $res . "\n"; これをtest.plとする。 $ perl test.pl 1 $ perl test.pl 1 2 $ perl test.pl foo 3 驚…

Perlの紛らわしいこと。

自分じゃなくてもたまにハマったりしそうだなぁという。 正規表現のキャプチャパターンで my $a = 'hogehoge' =~ m|^(hoge)|; # $a = 1 my ($b) = 'hogehoge' =~ m|^(hoge)|; # $b = 'hoge' マッチ演算子はスカラーコンテキストでマッチした数、 リストコン…

qr演算子。

うわああああああああこれ知らなかったあああああああああああ qr演算子とは 「正規表現」という値を生成する演算子。 以下のように使用するらしい。 $reg = qr/\w+/; if ('abcde' =~ $reg) { print 'matched !'; } 置換にも使える $reg = qr/\w+/; $str = '…

今北産業シリーズ。

タイトルだけ先に思い付いた。何か書かないと気が済まないので、 3行以内のTipsを考えてみようと思う。 俺式おまじない use Carp; use strict; use warnings; CarpじゃなくてData::Dumperの場合もある。 あくまで俺式。 クラスの始まりと終わり package Foo;…

sortのTips。

大したことじゃないけれど、知っていると確かに便利。sortは第一引数を省略するとcmp演算子を使うということ。 @a = (1, 2, 10, 3); print join(",", @a); # 1, 2, 10, 3 print join(",", sort @a); # 1, 10, 2, 3 print join(",", sort { $a cmp $b } @a); …