文字列のsort

[上に] [前に] [次に]
ゆーさく [E-Mail] 2000/03/11(土) 20:46:40
初めて投稿させて頂きます。
色々な本、Webを見ても解決できないので、
ここで質問させて頂く事にしました。

全角文字列が入った配列をsortしたいんですが、
文字列中の 特定の場所(私の場合は、後ろから四文字目)の
半角数字をsortの対象にし、それを基準に配列の並び替えを
行いたいのです。

初めは、splitで区切って実行したのですが、
それだと配列を並び替えする事にはつながらない事に
気づきました。

どうかご教授お願いします。

ふじ 2000/03/12(日) 01:14:52
$_[0] = "cdcae";
$_[1] = "greve";
$_[2] = "yxrde";
$_[3] = "ggcce";

print join "\n", sort {substr($a, -4, 1) cmp substr($b, -4, 1)} @_;

こんな例で分かりますか?
sortの比較する条件 (sort の後のブロック {} 内)
を後ろから2文字目で比較するように書いてやれば良いのです。

ゆーさく [E-Mail] 2000/03/12(日) 17:55:25
[[解決]]
わ、ありがとうございます。

sortって条件を指定できたんですね。
まだperlを初めて3週間あまりなので、
何も分からず困っておりました。

チャレンジしてみます。本当にありがとうございました。

[上に] [前に] [次に]