请教windows下Perl移动文件并改名

请教windows下Perl移动文件并改名

现要将上千个文件夹(下面有的包含子文件夹)下的图片文件由jpg改为gif格式, 但找到的程序输出文件要么送到同一个文件夹下,要么得一个一个定义, 太麻烦.
拟采取下面的方法解决, 用Perl将各文件夹下的文件都移到一个文件夹中, 移动后的文件名包含所在文件夹的信息, 等格式修改完成后再按文件名移回到原目录, 并去除文件夹信息(即还原为原文件名, 当然扩展名一定是新的gif的)
如:
将c:\目录1\目录11\20080808.jpg   移到  c:\目录0\目录1_目录11_20080808.jpg    处理后移回  c:\目录1\目录11\20080808.gif  
将c:\目录2\目录21\20080809.jpg   移到  c:\目录0\目录2_目录21_20080809.jpg    处理后移回  c:\目录2\目录21\20080809.gif
将c:\目录3\20080810.jpg              移到  c:\目录0\目录3_20080810.jpg                处理后移回  c:\目录3\20080810.gif
请各位大侠帮忙呵, 文件夹和文件太多了, 手动做不起呵
谢谢! 谢谢!
何必这么麻烦,直接用程序重命名不就行了
正好,我这里有个移动文件的小脚本,你看看能不能帮上忙

#!/usr/bin/perl

use strict;
use warnings;

use File::Find;
use File::Copy;

my @dir = qw(c:/Xunlei/111);

File::Find::find(\&wanted, @dir);

sub wanted {
        if (/((pdf)|(chm))$/) {
                File::Copy::move($File::Find::name, 'c:/xunlei/111') unless -d;       
        }
}
已经很明显了
谢谢cobrawgl
有两个问题, 一是如果在目录下存在图片文件和子目录, 则图片文件不能被移走, 处理后的情况如下, 其中的gif文件没被移走.

└─友好
    ├─031629000010.gif
    ├─031629000009.gif
    ├─031629000008.gif
    │  ├─08-06-007-Z-D001友好大楼照片
    │  └─08-06-007-Z-D001友好大楼房证土地证
    │      └─友好转让
    ├─031627000015.gif
    ├─031627000014.gif
    ├─031627000011.gif
    ├─031627000010.gif
    └─031627000009.gif

二是移走的文件没有带上路径标识, 因为要将jpg等格式的文件处理成800X600再转为gif格式后再移回去, 没有路径标识就无法移回去.
这两点Perl可以实现吗?  (刚接触, 实在无从下手, 活又急, 还请多帮助)
可以啊,只是。。。上午有事情。。。
已经很明显了
"已经很明显了"什么意思呵, 给个语句呵
这个小脚本应该能做到 移出,但是还没满足你在6楼说的那个第一个要求
移入那个反过来作应该可以吧

#!/usr/bin/perl

use strict;
use warnings;

use File::Find;
use File::Copy;
use File::Basename;
use File::Spec;

my @dir = qw(c:/目录1 c:/目录2 c:/目录3);

File::Find::find(\&wanted, @dir);

sub wanted {
        my ($filename, $dir) = File::Basename::fileparse($File::Find::name);
       
        $dir =~ s{.*?/(.*?)/(.*?)/}{$1_$2_};
        $filename = File::Spec->catfile('d:/tt', $dir.$filename);
       
        File::Copy::move($File::Find::name, $filename);
}
非常感谢, trying....