foreach my $file(@array){ ... get filenames ... } #### foreach my $file(@array){ get_filenames($file); } sub get filename{ my ($file) = @_; foreach my $filename($file){ #get filename from file stored in @array and find it. ... find file...; copy_file($filename) } sub copy_file{ my ($filename ) = @_; foreach ($filename) copy($filename, "copied_files/$dest"); #this is the tricky part, which i will try to describe <.< #### open my $temp, '>', "loopfile" ; my $num = "000"; my $dev_flash= '$dev_flash'; my $dev = '@dev_flash'; foreach (0 .. 27){ print $temp "if ($dev$num == 0){\nprint '';\n}else{\n", 'print "\n\n'," dev_flash$num",'\n',"|==================================>",'\n', '";', "\n", 'foreach my $filename(', "$dev$num", '){',"\n", 'print "\t$filename";', "\n", "\t",'}', "\n", '}', "\n\n"; "\n\n\tdev_flash018\n|==================================>\n", @dev_flash018; $num0++; } my $num1 = 000; foreach(0 .. 27){ print $temp 'elsif (', "$dev_flash$num1", '=~ /\b$file\b/i ){', "\n", 'if (-e "./copied_files/', "dev_flash$num1", '/$file"){', "\n", #' print "$dir/$file match\n";', "\n", ' push ', "$dev$num1",',', '"$file\n";', "\n", ' my $des = "./copied_files/', "dev_flash$num1", '/duplicate/";', "\n", ' copy ("$dir/$file", $des) or die "$!";', "\n", '}else{', "\n", ' push ', "$dev$num1",',', '"$file\n";', "\n", ' my $des = "copied_files/', "dev_flash$num1", '/";', "\n", ' copy ("$dir/$file", $des) or die "$!";', "\n", '}', "\n", '}', "\n"; $num1++; }