【发布时间】:2020-05-20 07:25:24
【问题描述】:
我只是想在处理之前将文件复制到不同的目录。代码如下:
use File::stat;
use File::Copy;
use LWP::UserAgent;
use strict;
use warnings;
use Data::Dumper;
use Cwd qw(getcwd);
my $dir = "\\folder\\music";
my $dir1 = "c:\\temp";
opendir(my $dh, $dir) or die "Cant open directory : $!\n";
#my @list = readdir($dh)
my @files = map { [ stat "$dir/$_", $_ ] }
grep( /Shakira.*.mp3$/, readdir( $dh ) );
closedir($dh);
sub rev_by_date
{
$b->[0]->ctime <=> $a->[0]->ctime
}
my @sorted_files = sort rev_by_date @files;
my @newest = @{$sorted_files[0]};
my $name = pop(@newest);
print "Name: $name\n";
#**********************
#Upto here is working fine
my $new;
open OLD,"<",$name or die "cannot open $old: $!";
问题从这里开始
open(NEW, "> $new") or die "can't open $new: $!";
while ()
{
print NEW $_ or die "can't write $new: $!";
}
close(OLD) or die "can't close $old: $!";
close(NEW) or die "can't close $new: $!";
我得到的错误是: 无法打开 Shakira - Try Everything (Official Video).mp3: no such file or directory at copy.pl line 49.
当我咀嚼文件名时,比如 我的 $oldfile = chomp($name); 那么错误是: 名称:夏奇拉-尝试一切(官方视频).mp3 旧文件为 0 无法打开 0:copy.pl 第 49 行没有这样的文件或目录。
有什么想法吗?
【问题讨论】:
-
你必须在你的文件前面加上你用于
readdir的目录。
标签: perl