perl在win下无法修改文件名

perl在win下无法修改文件名

主要代码如下:
opendir D, "./tmp" or die "can noopen!";
while ( defined(my $file = readdir D ) ) {
        my $new = $file;
        my ( $bn,$mid, $sf ) = split /\./, $file;

        next if $file eq '.';
        next if $file eq '..';

        $sf =~ tr[A-Z][a-z];

        if ( $sf ne "" ) {
                $new = "$bn.$sf";
        }
        else {
                $new = $bn;
        }

#此处rename总是报不存在目录或文件,在上面的./tmp目录已经有文件,并且可写
        if (rename( $file, $new )){
                print "rename the file: $file"." to $new"."\n";
        }
        else{
                print "$!"."\n";
        }


请大牛指点!
if (rename( "./tmp/" . $file, $new ))
明白了,多谢~~~~
2楼正解,你的路径错了。。。