2009-10-12から1日間の記事一覧

プレースホルダ

複数の値を列挙することができない。 具体的には以下のケース。 $ids = '1,2,3,4,5'; my $sth = $dbh->prepare(<<'SQL'); delete from tableA where id in (?) SQL $sth->execute($ids); 以下なら実行可能。 $ids = '1,2,3,4,5'; my $sth = $dbh->prepare(<<…

まとめてコメントアウト

vim

1.対象範囲をビジュアルモード(Ctrl+v)で選択。 2.大文字「I(アイ)」を入力 3.先頭に追加したい文字列を入力(Perlなら#) 4.Esc

時間系の関数

エポック(1970/1/1 00:00:00 UTC)からの秒数を返す time(); 現地時間からエポックタイムを返す(あくまでも1970/1/1 00:00:00 UTCからの秒数) use Time::Local; timelocal(0, 30, 17, 5, 10-1, 2009-1900); time関数が返す形式をローカル時間のリストに変…

調べたことメモ

nice スケジュール優先度を変更して与えられたcommandを実行する。 デフォルトの優先度は10。 nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [command [arg...]]

FileBaseName

File::Basenameは標準モジュールで、basename関数でスクリプト名を取得可。 use strict; use File::Basename; use TmpKotaro; print "$0\n"; print basename($0)."\n"; print TmpKotaro::test()."\n"; 特殊変数$0にはあくまで実行しているスクリプト名が入る…

シングルクォートとダブルクォート

ダブルクォートは変数展開と逆スラッシュを解釈する。シングルクォートは文字として扱う。 my $test = 'This is test'; my $single = '$test\t'; my $double= "$test\t"; print $single; print $double; #出力. #$test\tThis is test

改行とリストコンテキスト

改行を含む文字列をリストコンテキストで代入すると、改行でスプリットされる。 my ($aaa, $bbb, $ccc) = "aaa\nbbb\nccc"; print $aaa; print $bbb; print $ccc; aaa bbb ccc が出力される。 my ($aaa, $bbb, $ccc) = split("\n", "aaa\nbbb\nccc"); と同等…

sprintfとhex

まずsprintfがprintと同じものかと誤解していた。 そうじゃなくてフォーマットした文字列を返してくれるのね。 16進数⇔10進数変換はこんな感じ。 print hex '1f', "\n"; print sprintf "%x", 31, "n";