#!/usr/bin/perl use strict; use File::Copy; my $srcFile = $ARGV[0]; # コピーするファイル名を取得 print "src file : $srcFile\n"; # 再帰コピー関数 sub recurseCopy{ my($src, $dir) = @_; my @files = (); print "entering $dir\n"; # カレントディレクトリのディレクトリ・ファイルを取得 opendir(DIR, $dir) or die("Can not open directory : $dir\n"); @files = readdir(DIR); closedir(DIR); foreach my $file(sort @files){ next if($file =~ /^\.{1,2}$/); if(-d "$dir/$file"){ # ディレクトリの場合、再帰コピー呼び出し recurseCopy($srcFile, "$dir/$file"); } } print "copying $src to $dir\n"; # 自分自身にはコピーしない if($dir ne "\."){ copy($srcFile, $dir); } } print "start\n"; my $b = recurseCopy($srcFile, "."); print "end\n";