由于文件的数量,我有一个文件目录,我试图使用 perl 将其拆分为子目录。文件名在开头的日期格式为 YYYYMMDD 格式,我正在尝试对此进行拆分。我正在使用改编自此 StackOverflow 答案的以下代码:
#!/usr/bin/perl -w
use strict;
opendir DIR, "." or die "opendir: $!";
my @files = readdir(DIR);
closedir DIR;
foreach my $f (@files) {
-f $f or next;
(my $new_name = $f) =~ s!^((....)(..)(..).*)$!$2/$3/$4/$1/;
-e $new_name and die "$new_name already exists";
rename($f, $new_name);
}
但是,我得到一个“替换替换未在 movefiles.pl 第 10 行终止”。当我尝试运行此代码时。据我所见,我正在正确地转义并终止替换?