#!/usr/bin/perl
use File::Find;
use File::Copy;
use File::Basename;

$HOME_dir = `echo \$HOME`;
chomp $HOME_dir; #刪去換行符
$dst_dir = $HOME_dir."/Desktop/tmp/"; #目的路徑
$pic_dir = $HOME_dir."/magic/dir"; #圖片檔目錄
$filename = "list2.txt";
#-- 遞迴找檔案 --
sub find_file {
    $dir = $File::Find::dir;
    $fname = $File::Find::name;
    $name = $_;
    $basename = fileparse($fname, qr/\..*/);
    next if ($name =~ /^\./);
    next if (-d $name);
    $num = $basename;
    if (exists ($HASH{$num})) {    
        print "find!!\n";
        $newfile = $dst_dir.$name;
        print "File: $fname\n";
        print "Dst:$newfile\n";
        if (-d $dst_dir) {
            copy ($fname, $newfile);
        } else {
            mkdir($dst_dir);
            copy ($fname, $newfile);
        } 
    }
} #sub END
sub print_hash_data {
    print "-----Print HASH Data-----\n";
    while(($key, $value) = each %HASH) {
        print "$key => $value\n";
    } 
}
sub print_file_count {
    $command = "find $pic_dir -type f | wc -l";
    $count = `$command`;
    print "Total find files:$count\n";
}
#測試tmp目錄是否存在,如果不在就建立目錄
if (!-d $dst_dir) {
    mkdir($dst_dir);
}
$line_num = 1;
open FILE, $filename or die "Can't open $filename";
while (<FILE>) {
    chomp;
    print "Part:$_\n";
    $p_num = $_;
    $HASH{$p_num} = $line_num;
    $line_num ++;
}
print_hash_data();
find (\&find_file, $pic_dir); #執行遞迴找圖片檔案
print_file_count();
