[ perl ] readdirについて
perlでreaddirを用いてディレクトリを読むと、デフォルトではよくわからない順番で並んでいます。
これは、ディレクトリのファイルがファイルシステムとして、ある種の構造体に格納されているのが原因で、
のように普通にディレクトリを読むと、構造体リストの順番で@dir_listにファイル名が格納されます。
これをファイル名でソートするには、
のように、配列をsortします。
ディレクトリを先(もしくは後)に持ってきて、かつソートしたい場合は、
のような感じにするとよいかもです。
ところで、コンテンツが更新されたようです。
これは、ディレクトリのファイルがファイルシステムとして、ある種の構造体に格納されているのが原因で、
opendir DIR,$dir;
@entry_list = readdir DIR;
close DIR;
@entry_list = readdir DIR;
close DIR;
のように普通にディレクトリを読むと、構造体リストの順番で@dir_listにファイル名が格納されます。
これをファイル名でソートするには、
@sorted_entry_list = sort @entry_list;
のように、配列をsortします。
ディレクトリを先(もしくは後)に持ってきて、かつソートしたい場合は、
opendir DIR,$dir;
@entry_list = readdir DIR;
foreach $entry ( sort @entry_list ){
if(-d "$dir/$entry"){
push(@dir_list, $entry);
}else{
push(@file_list, $entry);
}
}
push( @sorted_entry_list, (@dir_list, @file_list));
#push( @sorted_entry_list, (@file_list, @dir_list));
close DIR;
@entry_list = readdir DIR;
foreach $entry ( sort @entry_list ){
if(-d "$dir/$entry"){
push(@dir_list, $entry);
}else{
push(@file_list, $entry);
}
}
push( @sorted_entry_list, (@dir_list, @file_list));
#push( @sorted_entry_list, (@file_list, @dir_list));
close DIR;
のような感じにするとよいかもです。
ところで、コンテンツが更新されたようです。
この記事のトラックバックURL:
HandyGestures
古今のタブブラウザとかでマウスジェスチャ使ってると、エクスプローラとかIEでもつい右クリしながら移動しようとしてしまう。
ので、エクスプローラでもマウスジェスチャないかなーと思って探してみたら普通にあった。
HandyGestures
レジストリは一応使ってるらしい。アンインストールすれば消えるらしいけど。
とりあえずタスクアイコン増やしたりしなかったので導入してみた。
動作は軽い。ジェスチャの設定変更も可能。IE7対応。
エクスプローラのみ、IEのみの動作設定も可能。
IEのブラウザエンジン使ってるLunascapeでは発動しなかった。Lunascape固有で設定したマウスジェスチャがちゃんと動いてた。
Sleipnirは入ってないからシラネ。
ので、エクスプローラでもマウスジェスチャないかなーと思って探してみたら普通にあった。
HandyGestures
レジストリは一応使ってるらしい。アンインストールすれば消えるらしいけど。
とりあえずタスクアイコン増やしたりしなかったので導入してみた。
動作は軽い。ジェスチャの設定変更も可能。IE7対応。
エクスプローラのみ、IEのみの動作設定も可能。
IEのブラウザエンジン使ってるLunascapeでは発動しなかった。Lunascape固有で設定したマウスジェスチャがちゃんと動いてた。
Sleipnirは入ってないからシラネ。
この記事のトラックバックURL:
何かしら