如何在perl中执行cleartool命令

如何在perl中执行cleartool命令,perl,clearcase,cleartool,Perl,Clearcase,Cleartool,对不起,这太天真了。我想编写一个简单的PERL脚本,它将接受两个参数(这里是提交标签),这两个参数作为cleartool命令的输入,并为我提供合适的输出。 我的代码: 现在输出为3个空文件:filename1、filename2和changeset。 但是我需要在两个提交的标签之间提交文件 谁能告诉我哪里出了问题 提前感谢。试试这个: $file1 = system("cleartool find . -version 'lbtype($ARGV[0])' -print > filen

对不起,这太天真了。我想编写一个简单的PERL脚本,它将接受两个参数(这里是提交标签),这两个参数作为cleartool命令的输入,并为我提供合适的输出。 我的代码:

现在输出为3个空文件:filename1、filename2和changeset。 但是我需要在两个提交的标签之间提交文件

谁能告诉我哪里出了问题

提前感谢。

试试这个:

$file1 = system("cleartool find . -version 'lbtype($ARGV[0])' -print > filename1");
而不是

$file1 = system('cleartool find . -version "lbtype($ARGV[0])" -print > filename1');

您还有一些Perl软件包来促进
cleartool
命令的执行

  • :您可以在“”中看到它的图示
这将允许直接在数组中获得结果,而不是在文件中(即使需要时可以将该数组转储到文件中)


非常感谢你!正如我所预料的那样。但是你能解释一下在system()调用中使用“'”和“'''”导致差异的原因吗?如果你在单引号中使用变量,那么这些变量不会被插值。perl将变量视为字符串文本。如果使用双引号,perl会将它们作为变量插入
$file1 = system('cleartool find . -version "lbtype($ARGV[0])" -print > filename1');
@res = ClearCase::CtCmd::exec("find . -version 'lbtype($ARGV[0])' -print");