这是我的示例代码
#!/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");
当我们运行此代码时,我们在重命名函数中出现错误,此代码有什么问题。
实际上您的$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;
您能否使用-
而不是/
根据brian d foy
评论,这是一个更好的解决方案。
my $day = strftime "%m-%d-%Y", localtime;
my $file = "abcMONcde.zip";
my $zipfile = $file;
您需要考虑将路径存储在单个变量(实际路径和目标路径(中。
my $actfilename = "home/abc/$file";
my $destfilename = "home/abc/$file.$day";
有时直接路径不起作用(根据我的经验(
rename($actfilename,$destfilename) || die("Error in renaming");