#----------------------#
#  ファイル一覧の取得  #
#----------------------#
sub GetFilelist {
      # 引数の取得、変数の準備
      my ($dir, $extension, $swich) = @_;
      my ($temp, $file, $e, $n, @filelist);
      my $i = 0;
      # 複数指定の拡張子を分割
      @ext = split(/\//, $extension);
      # ディレクトリを開く
      opendir (DIR , $dir) || return false;
            # ディレクトリにあるファイル等を1つずつ抽出
            while ($file = readdir DIR) {
                  # ゴミをはじく
                  if ($file =~ /^\.{1,2}$/) {
                        next;
                        } else {
                        # 大文字小文字の判定
                        if ($swich == 1) {
                              $temp = lc($file);
                              foreach (@ext) {
                                    $_ = lc($_);
                                    }
                              } else {
                              $temp = $file;
                              }
                        # ファイルが指定拡張子と合致するかを拡張子毎にチェック
                        foreach $e (@ext) {
                              # 拡張子が指定されていて且つ、ワイルドカードではない
                              if ($e && $e ne ".[*]") {
                                    # 拡張子以外の文字列に引っかからないための措置
                                    if (index($temp, $e, length($temp) - length($e)) != -1) {
                                          $filelist[$i] = $file;
                                          $i++;
                                          # ヒットしたら次のファイルへ
                                          last;
                                          } else {
                                          # ヒットしないため別の拡張子へ
                                          next;
                                          }
                                    } else {
                                    # ワイルドカードを指定された時
                                    if ($e eq ".[*]") {
                                          if ($file =~/\./) {
                                                $filelist[$i] = $file;
                                                $i++;
                                                last;
                                                }
                                          } else {
                                          # 拡張子の指定がない時
                                          $filelist[$i] = $file;
                                          $i++;
                                          last;
                                          }
                                    }
                              }
                        }
            }
      closedir(DIR) ;
      # 結果としてファイル一覧を返す
      return @filelist;
}
*テスト用にTXTファイル、JPEGファイル、HTMLファイルがありますがいずれも0byteのファイルです。
*ファイルは拡張子で判断するので、拡張子のないファイルは探せません。
*サーバーが落ちている場合が多々あります。