こんにちわ。
例えば、
あいう,2002/04/12,
ななな,2002/04/14,
あいう,2002/04/20,
というlogがあったとして、これを表示させるときには、
あいう 2002/04/12
あいう 2002/04/20
ななな 2002/04/14
といった具合に出力させたいのですが、そのsortのさせ方がわかりません。
my @lines = sort by_no(@lines);
sub by_no
{
my $no1 = (split(/,/,$a))[0];
my $no2 = (split(/,/,$b))[0];
$no2 cmp $no1;
}
ではどこがいけないのでしょうか?
教えてください。お願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
> ではどこがいけないのでしょうか?
ということですが、どのようにダメなのでしょうか?
コピーして確認したところ、単に逆順にソートされてしまうだけのようです。
文字列を昇順(あいうえお順)にソートしたい場合、
$no2 cmp $no1;
ではなく、
$no1 cmp $no2;
とします。
ちょっと気になった部分として、
> my @lines = sort by_no(@lines);
のところですが、既存の配列 @lines を、ここで my 宣言するのはどうかな、と思います。
正しく動作するようですが、下記のようにした方がよいと思います。
・元の配列の内容は不要 → my 宣言しない(@lines を書き換える)
・元の配列の内容も必要 → my 宣言する配列名を変える(@sorted_logs など)
また、「同じ文字列の場合は日付順にしたい」という要望も出てくると思うのですが、その際、古い順でよければ比較関数は省略できます。
(0埋めされた固定長の日付文字列は、文字コード昇順が、そのまま古い順になります。)
my @sorted_logs = sort @lines;
※コンマ左の文字列の部分に、コンマより小さい文字コードの文字が入らないことが前提です。全角のみなら問題ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列数式の解除
-
2つ以上の変数を比較して最大数...
-
VBA 1次元配列を2次元に追加する
-
特定のセル範囲で4文字以上入力...
-
配列を任意の数値で埋める方法
-
for each の現在の配列ポインタ...
-
delphiで配列を、コピーするには。
-
配列変数の添字が範囲外ですと...
-
VB2008: CSV を二次元配列に読...
-
ExcelVBA Rangeの扱いについて
-
subの配列引数をoptionalで使う...
-
C++のテーブル検索に関する質問...
-
VB6 配列を初期化したい
-
ListViewで、非表示列って作れ...
-
linest関数に配列を渡す
-
Array配列の末尾に追加したい。
-
配列内の検索方法
-
[VB.net] StringからByte配列へ...
-
VBA Match関数の限界
-
テキストボックスの表示
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列数式の解除
-
2つ以上の変数を比較して最大数...
-
VBA 1次元配列を2次元に追加する
-
VB6 配列を初期化したい
-
特定のセル範囲で4文字以上入力...
-
ListViewで、非表示列って作れ...
-
《エクセル2000》A列・B列の商...
-
配列変数の添字が範囲外ですと...
-
Excel-VBAの配列「Public Const...
-
subの配列引数をoptionalで使う...
-
for each の現在の配列ポインタ...
-
配列を任意の数値で埋める方法
-
Dim は何の略ですか?
-
VBのFunctionで、配列を引数...
-
配列内の内容を全て表示する方法
-
2次元動的配列の第一引数のみを...
-
Excel VBA配列をFunctionに渡す
-
VBA Match関数の限界
-
Array配列の末尾に追加したい。
-
AES暗号にて、AES_set_encrypt_...
おすすめ情報