わいえむねっと

Contents
Categories
Calendar
2026/11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Monthly Archives
~2000/01
Recent Entries
RSS1.0
Templates
Information
Processed: 0.052 sec
Chashed: -
2007/07/30 Mon
暑くて3時に目が覚める。
二度寝する気も起きずにそのまま過ごして6時30分に出発。
マックでコーヒーをすすったりなんだりで時間をつぶして8時に出社。
今日も適当にいこう。 唐突に新潟土産とかで日本酒をいただきました。
ディスプレイの片隅に置いたまま仕事を。 無糖ブラックは3本。
樽型。 日本酒には魚かなーと。
帰り際にスーパーに立ち寄り、刺身を買って帰る。
最近はウイスキーばかり飲んでいたのでたまには日本酒もいいものですねとくいくいと。
なんとなくラベルをぐるりと眺めてみたら、

冷や、又は少し冷して御賞味下さい。

との記述。
もう常温で半分飲んでしまったよ!
残りは明日冷やで飲もうそうしよう。
2007/07/29 Sun
雷雨ですね。 Perl覚え書き。

open INPUT, 'foo.txt' or die;
open OUTPUT, '>bar.txt' or die;
do{print OUTPUT "[$1]\nfoo=$2\nbar=$3\n" if /(\w+),(\w+),(\w+)/} while <INPUT>;

あるファイルの特定行から情報を抽出して別フォーマットのファイルを生成。

open INPUT, 'foo.txt' or die;
open OUTPUT, '>bar.txt' or die;
do{do{print OUTPUT <<HERE;
[$1]
foo=$2
bar=$3
HERE
} if /(\w+),(\w+),(\w+)/} while <INPUT>;

ヒアドキュメントにしてみたり、

open INPUT, 'foo.txt' or die;
open OUTPUT, '>bar.txt' or die;
do{sub{print OUTPUT <<HERE;
[$1]
foo=$2
bar=$3
HERE
}->() if /(\w+),(\w+),(\w+)/} while <INPUT>;

コードリファレンス即デリファレンスでdoネストを回避してみたり。(大して変わらねぇ) 雨もやんで薬局。 そしてまた雷雨。 Memo:
2007/07/28 Sat
例によって朝まで起きていて気が付いたら寝ていて起きたら昼過ぎで。 マカダミアナッツをぽりぽりかじりながら死んだ目。
2007/07/27 Fri
そういえば給与明細を開封していなかったと開封してみたところなんだかいやに住民税が上がっている気がして今年度分の給与明細を引っ張り出してきたみたところやっぱり先月から8kほど上がっているようなそんなような。
8kって1年で諭吉10人分てことですか。
アホか! そうですね。
君はマルチスレッドであるということにもう少し注意を払ってコードを書いたほうがいいと思います。
2007/07/26 Thu
Referer:

クラス、構造体、共用体、インタフェースの説明です。

とか、全部まとめられてしまうところがどうにかならないものかとか。
さぁ、楽しくなってまいりました!
楽しくなって参りました!
楽しくないです参りました!
ひどい焦燥感。 そんなこんなでとっておきの古酒をあおって。
2007/07/25 Wed
今日も今日とて朝から肉まんを食そうと駅までの道すがらコンビニに立ち寄ろうとしたところ肉まんが見当たらないというかどうもあんまんとピザまんしかないようだったのでそのまま店に入りもせずにすたとすたと駅まで。 そうですね。
そもそも性質に難が。
2007/07/24 Tue
今日の日付は数字の並び的にどうも、なにか、こう、しっくりするものがあると思ったら誕生日だったわけですが、それはそれとして。いつもと変わらず肉まんをかじりながらてくてく駅へと。 Perl覚え書き。
マッチ数について考えてみる。

$_ = "fooFooFOO";
print /foo/gi;                      # fooFooFOO

リストコンテキストだとマッチ文字列。

$_ = "fooFooFOO";
print scalar /foo/gi;               # 1

スカラコンテキストだとマッチ結果。

$_ = "fooFooFOO";
@foo = /foo/gi;
print @foo;                         # fooFooFOO
print $#foo;                        # 2
print scalar @foo;                  # 3

配列をスカラコンテキストとして評価すればマッチ数。
一時変数を省略するにはscalarのリストコンテキスト版が欲しいところだけれど、ないらしい。

$_ = "fooFooFOO";
print scalar map 0, /foo/gi;        # 3
print scalar map //, /foo/gi;       # 3
print scalar map '', /foo/gi;       # 3
print scalar map undef, /foo/gi;    # 3
print scalar map{0} /foo/gi;        # 3
print scalar map{//} /foo/gi;       # 3

ので、mapで代用してみたりとか。

$_ = "foobar";
s/(\w)(o*)(\w*)/"$1o*".(scalar map 0, $2=~\/o\/g).$3/eg;
print;                              # fo*2

でも、置換でマッチ数を使用しようとすると途中でメモリ変数がクリアされてしまったりとか。

$_ = "foobar";
s/(\w)(o*)(\w*)/"$1o*".do{scalar map 0, $2=~\/o\/g;}.$3/eg;
print;                              # fo*2bar

ので、doを使ってスコープをずらしたりとか。 overflow:autoの使用回数が増えてきたのでとりあえず変換対応してみたりなんだり。
2007/07/23 Mon
うどんもたれ。 Perl覚え書き。
前回までのあらすじ。
標準出力と標準エラー出力の両方が出力される場合、

open STDOUT, '>foo.txt';
open STDERR, '>foo.txt';
system 'foo';

としても、標準出力しか出力されない。
ただし、

open STDOUT, '>foo.txt';
open STDERR, '>bar.txt';
system 'foo';

のように、ファイルが別なら出力される。
この場合、

open STDOUT, '>foo.txt';
open STDERR, '>&STDOUT';
system 'foo';

とすれば、両方とも出力される。
他に、

system 'cmd', '/c', qq{"foo >foo.txt 2>&1"};

プロンプト経由にするとかしても可能。
Linuxであれば、

system 'bash', '-c', qq{"foo >foo.txt 2>&1"};

とか。
2007/07/22 Sun
体調が良くわかりません。
とりあえずそろそろ昼なので寝ます。 行頭の1.とか10.を①とか⑩に。

s/^((?:\s|\xE3\x80\x80)*)([\x31-\x32])?([\x30-\x39])\x2E/"$1\xE2\x91".chr(($2?(ord($2)-0x30)*10:0)+ord($3)+0x6F)/egm;

全角なら、

s/^((?:\s|\xE3\x80\x80)*)(?:\xEF\xBC([\x91-\x92]))?\xEF\xBC([\x90-\x99])\xEF\xBC\x8E/"$1\xE2\x91".chr(($2?(ord($2)-0x90)*10:0)+ord($3)+0x0F)/egm;

範囲外を除外するなら、

s/^((?:\s|\xE3\x80\x80)*)([\x31-\x39])\x2E/"$1\xE2\x91".chr(ord($2)+0x6F)/egm;
s/^((?:\s|\xE3\x80\x80)*)\x31([\x30-\x39])\x2E/"$1\xE2\x91".chr(ord($2)+0x79)/egm;
s/^((?:\s|\xE3\x80\x80)*)\x32\x30\x2E/$1\xE2\x91\xB3/gm;

行整形するなら、

s/^((?:\s|\xE3\x80\x80)*)(?:)([\x31-\x39])\x2E/"$1\xE2\x91".chr(ord($2)+0x6F)/egm;
s/^((?:\s|\xE3\x80\x80)*)\x31([\x30-\x39])\x2E/"$1\xE2\x91".chr(ord($2)+0x79)/egm;
s/^((?:\s|\xE3\x80\x80)*)\x32([\x30-\x30])\x2E/"$1\xE2\x91".chr(ord($2)+0x83)/egm;

一行でなら、

s/^((?:\s|\xE3\x80\x80)*)([\x31-\x39]|\x31[\x30-\x39]|\x32\x30)\x2E/"$1\xE2\x91".chr((length($2)==1?ord($2):(substr($2,0,1)eq"\x31"?10:20)+ord(substr($2,1,1)))+0x6F)/egm;

メモリ変数を無闇に使うなら、

s/^((?:\s|\xE3\x80\x80)*)(?:([\x31-\x39])|(\x31)([\x30-\x39])|(\x32)(\x30))\x2E/"$1\xE2\x91".chr(ord($2+$4+$6)+0x6F+($3?10:0)+($5?20:0))/egm;

とかなんとか。
ぼけと明後日の方向を目をやりながら。
2007/07/21 Sat
焼肉弁当と生姜焼き弁当。 ここ最近、毎週のように部屋の片づけをしなければと思っているようなそんなような。
しなければと思っているだけで全然していないわけですが。
なにかこう、他のことで忙しくなったりすると部屋の片付けがはかどるのにな!
本当に駄目な人ですね。はい。