Perl の SUPER 擬似クラス - メモ -
C-c でロック, C-q でロック解除
shell をいじっているとき,
Ctrl-c を押すと入力ロックがかかります.
Ctrl-q でロック解除できます.
while とか for とか復習
while (条件式)
条件式が真なら常に実行.
よって,
while(1)
while(@array)
とかやると,
()内は常に真なので, 無限ループ.
foreach ()
配列全体やリスト処理をするためのもの.
()内から値のリストを受け取り, それぞれの値に対して一回ずつコードのブロックを繰り返し実行.
だから
for (@array)
とかってやると, 配列の要素数だけ繰り返し実行.
否定演算子 ! のメモ
否定演算子 (!) は 0 とか undef が義, あとは真.
defined は undef 以外は真.
hash要素の存在確認は, exist
exists $math_scores{$key}
Ref.
http://fleur.hio.jp/perldoc/mix/pod/perl5100delta.mix.html
http://d.hatena.ne.jp/perlcodesample/20080213/1202911471
Perl の undef の取り扱いの注意 #1
use strict;
$hoge = undef;
if ($hoge == 0) {
print "fuga\n";
}if ($hoge eq '') {
print "foo\n";
}
これ, use strict してても実行すると,
fuga
foo
ってでます.
$hoge が 数字とか文字とかと比較されると,
Perl は勝手に気を使って, 数字っぽく ないしは 文字列っぽく 扱ってしまうみたいです.
テストするときなどは, ちゃんと defined してからにしましょう.
use strict;
my $hoge = undef;
if (defined $hoge) {
^---if ($hoge == 0) {
^---^---print "fuga\n";
^---}^---if ($hoge eq '') {
^---^---print "foo\n";
^---}
}
MySQLでインデックスが効いているか確かめる方法
explain SELECT ~~
もしくは
desc SELECT ~~
これで調べられる.
possible_keys は候補の鍵,
key は実際に使われている鍵.
mysql> explain select id from data where id=10102 and flg!=2;
- +
id select_type table type possible_keys key key_len ref rows Extra
- +
1 SIMPLE user_card ref PRIMARY,i2 PRIMARY 4 const 18 Using where
- +
1 row in set (0.00 sec)
git commit の訂正など
コミット情報の削除は reset 使って, git show HEAD~1 , git show HEAD~2 とかやって確認したあと, 2つ前のコミットに戻したいなと思ったら, git reset HEAD~2とかする.
でも, reset だけだとコミット情報を削除しますが, 作業ツリーは維持されます.
コミット情報削除とともに作業ツリーもそれに合わせたい場合は --hard オプションをつけましょう.
git reset --hard HEAD^