作为更大的Perl程序的一部分,我正在检查diff文件夹中输入文件的命令输出与参考文件,其中空白输出(匹配)是传递结果,diff的任何输出都是失败结果.
问题是,如果目标文件夹缺少预期文件的数量,则异常diff throws不会作为输出,从而创建错误传递.
输出示例:
diff: /testfolder/Test-02/test-output.2: No such file or directory
Run Code Online (Sandbox Code Playgroud)
测试01:通过
测试02:通过
代码如下:
$command = "(diff call on 2 files)";
my @output = `$command`;
print "Test-02: ";
$toPrint = "PASS";
foreach my $x (@output) {
if ($x =~ /./) {
$toPrint = "FAIL";
}
}
Run Code Online (Sandbox Code Playgroud)
如果diff呼叫有任何输出,这是一个快速的hackery作业失败.有没有办法检查被调用的命令抛出的异常backticks?
我有一个数字,需要添加一个小数来格式化.
这个数字保证在1000到999999之间(我已经用其他方式涵盖了其他可能性,这是我无法理解的).我需要在最后3位数之前加一个小数,例如:
1000 -> 1.000
23513 -> 23.513
999999 -> 999.999
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
据我所知(Perl对我来说很新)Perl可以用来编写Unix命令行的脚本.我想要做的是运行(硬编码)命令行调用,并搜索这些调用的输出以进行RegEx匹配.有没有办法在Perl中做到这一点?怎么样?
编辑:这里的顺序是: - 另一个程序. - 针对其输出运行正则表达式.
完全披露,这是家庭作业的一部分(虽然一个小片段,项目本身就是玩AI的游戏).
我将此函数内置到树节点类中:
def recursive_score_calc(self):
current_score = self.board
for c in self.children:
child_score = c.recursive_score_calc()
if(turn_color == 1):
if(child_score > current_score):
current_score = child_score
else:
if(child_score < current_score):
current_score = child_score
self.recursive_score = current_score
return current_score
Run Code Online (Sandbox Code Playgroud)
在深度为1的树(一个根和一些子)上,它已经达到了Python递归限制.该函数旨在使用动态编程从下到上构建最小 - 最大树.说实话,我不知道为什么这不能按预期工作,但我对Python也很新.
Stack Overflow的好人:为什么这段代码会给我一个堆栈溢出?
有问题的整个班级:
from Numeric import *
class TreeNode:
children = []
numChildren = 0
board = zeros([8,8], Int)
turn_color = 0 # signifies NEXT to act
board_score = 0 # tally together board items
recursive_score = 0 # set when the …Run Code Online (Sandbox Code Playgroud)