田中です。

sort について質問です。
以下のようなプログラムを作ったんですが、

オープンしているファイルは
11 2 --- ............. <- 日付の後ろは任意データ。

-----
〜
IGNORE = %w(. ..);

list = Hash.new(0);

Dir.foreach(Basedir) do |file|
    next if IGNORE.include? file;

    lfile = open("#{Basedir}/#{file}", "r");
    list[file] = lfile.read;
    lfile.close;
end

list.sort{|f1, f2|  f1[1].to_i <=> f2[1].to_i }.each do |key, line|
    print line;
end
〜
-----

sort がうまく行きません。(日付でソートして欲しい)

list.sort{|f1, f2|  f1[1].to_i <=> f2[1].to_i }.each do |key, line|

だと、最初(月)しか見ていない様で日でのソートがされない。

list.sort{|f1, f2|  f1[1] <=> f2[1] }.each do |key, line|

だと、文字としてソートするので、

11 2
4 3

の様な順になる。

list.sort{|f1, f2|
f11, f12 = f1.split(" ", 3);
f21, f22 = f2.split(" ", 3);
        Time.mktime(Time.now.year, f11.to_i, f12.to_i, 10, 0, 0) <=>
        Time.mktime(Time.now.year, f21.to_i, f22_d.to_i, 10, 0, 0)
 }.each do |key, line|
と Time.mktime を使ってもダメです。
# って言うか、 xx.sort{ .... } の中身の書き方も良く分かってない
# んですが、(ドキュメントあります?)

なにか良い方法はないのでしょうか?

--------
Boarder. -> Katsuya TANAKA