2014年4月4日金曜日

All about Perl's List 配列のすべて

宣言

1.既知値で初期化
    my @配列名 = (val0, val1, ..., valn);

2.空の配列
my @配列名;

メンバーにアクセス

1.代入
 初期化時のほかに、以下のように個別に代入する。
    $配列名[0] = val0;
    $配列名[1] = val1;
    ... ...
    $配列名[n] = valn;
  以下の代入方法もある。
  ($配列名[0], $配列名[1]) = (val0, val1);
2.参照
 リストに含まれる値を指定した変数に順に参照する場合
foreach my $val (@配列名){
  print "$val¥n";
}
一気にリセット
 以下のコマンドで、既存の配列をすべてクリアし、空のものにできる
    @配列名 = ();

要素数
my $length = @array;

ディレクトリ・ファイル一覧の取得

単純に現在フォルダ以下のすべてのファイル名を取得するには、以下のコードで十分です。
@files=<*>; #カレントディレクトリ内の全ファイル名を取得
現在のフォルダから再帰的にすべてのファイル・フォルダ名を取得するには、以下のコードが必要です。
use File::Find;
@directories_to_search = ('./'); #(複数の指定可
find(\&wanted, @directories_to_search);

#--------------------------------------------
#ファイルが見つかる度に呼び出される
#--------------------------------------------
sub wanted {
print $File::Find::dir, '/'; #カレントディレクトリ
print $_; #ファイル名
print "\n";

#フルパスのファイル名
#print $File::Find::name, "\n";
}
他には、以下のものもあります。

  • glob() #ディレクト名でファイルの一覧取得
  • opendir() #ファイルハンドラでファイルの一覧を取得。opendirreaddirと一緒に使う