这是我的示例代码
#!/usr/bin/perl
use strict;
use warnings;
use POSIX qw(strftime);
my $day = strftime "%m/%d/%Y", localtime;
my $file = "abcMONcde.zip";
my $zipfile = $file;
rename("home/abc/$file","home/abc/$file.$day") || die("Error in renaming");
Run Code Online (Sandbox Code Playgroud)
当我们运行这段代码时,我们在重命名函数中遇到了一个错误,这段代码有什么问题。
实际上你$day打印输出abcMONcde.zip06/09/2020:
你怎么能像这样重命名文件。不可能的。该文件夹不允许使用正斜杠和反斜杠。
你需要重命名 $day=~s/\//\-/g;
让我们试试这个代码:
#!/usr/bin/perl
use strict;
use warnings;
use POSIX qw(strftime);
use File::Copy;
my $day = strftime "%m/%d/%Y", localtime; $day=~s/\//\-/g;
Run Code Online (Sandbox Code Playgroud)
您能否根据评论使用它-来代替/更好的解决方案brian d foy。
my $day = strftime "%m-%d-%Y", localtime;
my $file = "abcMONcde.zip";
my $zipfile = $file;
Run Code Online (Sandbox Code Playgroud)
您需要考虑将路径存储在单个变量中(实际路径和目标路径)。
my $actfilename = "home/abc/$file";
my $destfilename = "home/abc/$file.$day";
Run Code Online (Sandbox Code Playgroud)
有时直接路径不起作用(根据我的经验)
rename($actfilename,$destfilename) || die("Error in renaming");
Run Code Online (Sandbox Code Playgroud)