在perl的循环中将数字附加到变量名称

Gop*_*hna 0 perl loops

我正在编写用于检查C代码的perl测试用例.这里我用不同的值多次调用C文件并检查它是否返回1.我的perl文件看起来像这样:

my $variableCheck1,$variableCheck2,$variableCheck3.....
.
.
.
.
if(($variableCheck1 == 1) && ($variableCheck2 == 1) && ($variableCheck3 == 1).....)
{
   print "Test cases are passed";
}
Run Code Online (Sandbox Code Playgroud)

问题是有很多检查变量.有没有办法让我可以在循环中运行所有检查变量,同时将数字附加到check变量,就像这样

for($i=1 ; $i < 12 ; $i++)
{
      if($variableCheck_$i   == 1)  
    {
    print "Test cases are passed";

    }
}
Run Code Online (Sandbox Code Playgroud)

追加,使得每个循环变量名称根据值$ i变化:variableCheck1,variableCheck2.

xxf*_*xxx 5

最好使用一个实际的测试库,比如Test :: More,它会告诉你所有测试是否通过,以及提供许多有用的测试功能.然后,迭代各种参数值并运行测试非常简单.下面是一个示例,它将各种参数传递给echo命令,然后将结果传递给计算器程序,bc以查看该添加是否正常工作:

test_add.t

#!/usr/bin/env perl

use warnings;
use strict;
use Test::More;
for my $aa ( 1..3 ) {
    for my $bb ( 1..3 ) {
        my $expected = $aa + $bb;
        my $prog = "echo $aa + $bb | bc";
        my $output = `$prog`;
        ok( $expected == $output, "$aa + $bb = $expected" );
    }
}
done_testing();
Run Code Online (Sandbox Code Playgroud)

运行测试文件:

prove -v test_add.t
ok 1 - 1 + 1 = 2
ok 2 - 1 + 2 = 3
ok 3 - 1 + 3 = 4
ok 4 - 2 + 1 = 3
ok 5 - 2 + 2 = 4
ok 6 - 2 + 3 = 5
ok 7 - 3 + 1 = 4
ok 8 - 3 + 2 = 5
ok 9 - 3 + 3 = 6
1..9
ok
ll tests successful.
Files=1, Tests=9,  0 wallclock secs ( 0.05 usr  0.01 sys +  0.04 cusr  0.00 csys =  0.10 CPU)
Result: PASS
Run Code Online (Sandbox Code Playgroud)