This diary enhanced for Hetaji 12pt!
る日記。
購読上の注意。 もどる。

この日記へのリンクは
http://fulufuru.hauN.org/nikki.pl/yyyy/mm/dd.html#xx
「yyyy/mm/dd」は年月日、「x」は段落で張るのが吉。

1999年10月5日(火)

HDD惨敗らしい。

[#01] 結局、AL-N4のBIOSは、8G以上不可。ということらしく、おそらく大丈夫であろうS21を持つけんとさんに売られていくことになった。くぅ、ま、死んだと思っていた、N4につけていた3.2GのHDDが生きていたので、HDDは、買わないことにしよう。謎計画は、なぜか、Panasonic製品になるらしいし……(謎)

[#02] 朝、なんだか、人がいない。そんな感じで、ゴンゴンかかってくる電話。あひー。

[#03] む?MICANの取得データのキャッシュが変だ。昨日の夜中に変更した部分が変だよ。くちょ。というか、追加して、変更して、一部コメントアウトしたつもりが、必要以上にコメントアウトしたらしい……汗。ま、見た目に問題ないから、いいけど……汗。

[#04] そういえば、MICANは、もともと、内部的にはGMT時刻で処理してますけれども……

[#05] SPEEDが解散らしい。

[#06] お客さんのところで、トラブル。缶詰中。こまったな。終電は、中野発2350。2330までに会社を出れない場合は、帰れない決定……(笑)。しかも、携帯電話忘れたから、このあたりの基地の電話番号わかりません……汗。そんなおいらに励ましのメールを……(笑)。

[#07] ん?問題ないらしい。原因については、あっちの人とこっちの人に究明してもらうとして、帰るぞぉ。

[#08] んと、区切り文字は本質ではないので、どんなソートのときでも区切り文字とは関係ないです。せっかくなので、例。

#!/usr/local/bin/perl 

# LIRS FIELD 
($M_TIME ,$D_TIME ,$TIMEZONE ,$LENGTH ,$URL ,$TITLE ,$AUTHOR) = (0..6);
# RECORDS
$FILE = <<LIRS__DATA;
938779260
938781002
+32400
49383
http://aniki.hauN.org/d/
INGO NIKKI
hiya

938779258
938780958
+32400
39383
http://test/
test-title
test-auther

938779262
938781000
+32400
59383
http://fulufuru.hauN.org/
fulufuru diary
fulufuru

LIRS__DATA
$FILE_COMMA = <<LIRS__DATA;
938779260,938781002,+32400,49383,http://aniki/d/,INGO NIKKI,hiya
938779258,938780958,+32400,39383,http://test/,test-title,test-auther
938779262,938781000,+32400,59383,http://fulufuru/,fulufuru diary,fulufuru
LIRS__DATA
# FIELD SEPARATOR
$FS="\n"; # if FILE
#$FS=",";# if FILE_COMMA
# RECORD SEPARATOR
$RS="\n\n"; # if FILE
#$RS="\n";# if FILE_COMMA

# FS is commma or return.
@records = split(/$RS/,$FILE);# if FILE
#@records = split(/$RS/,$FILE_COMMA);# if FILE_COMMA
# DELETE NULL record
@records = grep !/^$/, @records;

print "\n============\nSort by M_TIME\n============\n";
@sorted = &lirs_sort($M_TIME,\@records);
print join("\n---\n",@sorted);

print "\n============\nSort by D_TIME\n============\n";
@sorted = &lirs_sort($D_TIME,\@records);
print join("\n---\n",@sorted);

print "\n============\nSort by URL\n============\n";
@sorted = &lirs_sort($URL,\@records);
print join("\n---\n",@sorted);

print "\n============\nSort by LENGTH\n============\n";
@sorted = &lirs_sort($LENGTH,\@records);
print join("\n---\n",@sorted);

print "\n============\nSort by normal sort\n============\n";
@sorted = sort @records;
print join("\n---\n",@sorted);

print "\n============";
exit;

sub lirs_sort{
    my $field = shift ;
    my $lirs = shift ;
    map { $_->[0]}
    sort { $a->[$field+1] <=> $b->[$field+1] 
	       ||  $a->[$field+1] cmp $b->[$field+1]  }
    map { my @t=( $_, split(/$FS/,$_) ); \@t } @{$lirs};
}

$RS,$FSを変化させても、同じlirs_sortの関数や、標準のsortで同じようにソートできていることに注目していただければいいです。ちなみに、lirs_sortの中身については、Perlプログラミング中・上級編(jus勉強会 1999年9月25日)のSchwartzian Transformのページなどを見てください。

[#09] いや、単に、このまえのjusの勉強会で聞いたことを使えるチャンスだから、作ってみた。という話だったりするんだけど……(汗;;

[#10] ちうわけで、自分のプログラムにも、このルーチンいれてあげよう。っと。


アンテナ CH.9 わリンクス ぽぽぽ
(ふ)ポストペットユーザーCopyright(c)1996,1997,1998,1999,2000,2001,2002 ぽにし@うらやす
E-mail : konishi@ hauN.org