サイドコンテンツ 【メイン】

推し:加藤安那

加藤安那 (ユメオイ少女)

Twitter: @_hana_celeb_

最新 15 件のエントリー

サイドコンテンツ 【サブ】

ブログ エントリー

  • [Perl] 大文字小文字を区別しないで Sort

    -

    cmp で sort するとき、sort は文字コードで並べ替えるので、大文字小文字が混ざると、綺麗に並んでくれない

    例えば、aiueo.txt、Aiueo.txt、BBB.txt とあったときに sort すると Aiueo、BBB、aiueo となる。

    これは小文字よりも大文字の方が文字コードにしたときの値が小さいから。

    これを大文字と小文字を同一視する場合は以下のように書く。

    
    @dstfiles = map { $_->[0] } sort { $a->[1] cmp $b->[1] } map { [$_, lc $_] } @srcfiles;
    

    @srcfiles から受け取ったファイル名を map でオリジナルファイル名と、全てを小文字にしたファイル名をまとめた配列にして sort へ渡す。

    sort は小文字にされたファイル名で並べ替え、それを最後の map に渡す。 最後の map はオリジナルのファイル名を返す。

    以上。