我正在尝试编写一个Perl子例程,它返回一个文件数组,这些文件已经被修改并从$previous_date到now提交到Perforce存储库。子程序如下所示:
sub p4_files {
my ($previous_date) = @_;
my $files = "//depot/project/design/...rtl.sv"
my $p4cmd = "p4 files -e $files\@$previous_date,\@now";
my @filelist = `$p4cmd`;
chomp @filelist;
return @filelist;
}如果在给定日期之间提交了文件,则子例程将按预期工作。但是,没有进行任何新的更改,执行p4 files命令将返回一条消息:
prompt% p4 files -e //depot/project/design/...rtl.sv\@25/05/2017,\@now
prompt% //depot/project/design/...rtl.sv\@25/05/2017,\@now - no revision(s) after that date.我应该如何在Perl脚本中处理这个问题?遇到这种情况时,我想退出脚本。
发布于 2017-05-25 07:49:24
如果数组没有填充,什么也不做。
my @filelist = `$p4cmd`;
good_bye() unless @filelist; # Say goodbye and exit.
chomp @filelist;要抑制消息,只需将命令的stderr重定向到bitbucket:
my $p4cmd = "p4 files -e $files\@$previous_date,\@now 2> /dev/null";https://stackoverflow.com/questions/44174400
复制相似问题