gpt4 book ai didi

perl - 如何在使用 Text::SimpleTable 绘制的每次迭代中清空 $table

转载 作者:行者123 更新时间:2023-12-05 04:19:20 25 4
gpt4 key购买 nike

#!/tool/pandora64/bin/perl5.18.1
use strict;
use warnings;
use Text::SimpleTable; my $a=1;my $b=2; my $c=3; my $d=4; my @p_arr = (1,2);
my $table = Text::SimpleTable->new([1, "A"], [2, "B"], [3, "C"], [4, "D"]);
foreach my $p(@p_arr){
$table->row($a,$b,$c,$d);
$a=$a+1; $b=$b+1; $c=$c+1; $d=$d+1;
print "\nAfter $p iteration\n";
print $table->draw;
}

我需要打印表格,但在第一次迭代后它是追加的。如何在每次迭代后清空表格?

我得到的输出:

After 1 iteration
.----+----+-----+------.
| A | B | C | D |
+----+----+-----+------+
| 1 | 2 | 3 | 4 |
'----+----+-----+------'

After 2 iteration
.----+----+-----+------.
| A | B | C | D |
+----+----+-----+------+
| 1 | 2 | 3 | 4 |
| 2 | 3 | 4 | 1 |
'----+----+-----+------'

第一次迭代后的预期:

.----------------
| A | B | C | D |
+----------------
| 1 | 2 | 3 | 4 |
+----------------

预计第二次迭代:

.----------------
| A | B | C | D |
+----------------
| 2 | 3 | 4 | 5 |

最佳答案

只需将调用移动到 foreach 循环内的 new 即可。每次循环都会创建一个新表:

use strict;
use warnings;
use Text::SimpleTable; my $a=1;my $b=2; my $c=3; my $d=4; my @p_arr = (1,2);
foreach my $p(@p_arr){
my $table = Text::SimpleTable->new([1, "A"], [2, "B"], [3, "C"], [4, "D"]);
$table->row($a,$b,$c,$d);
$a=$a+1; $b=$b+1; $c=$c+1; $d=$d+1;
print "\nAfter $p iteration\n";
print $table->draw;
}

打印:

After 1 iteration
.----+----+-----+------.
| A | B | C | D |
+----+----+-----+------+
| 1 | 2 | 3 | 4 |
'----+----+-----+------'

After 2 iteration
.----+----+-----+------.
| A | B | C | D |
+----+----+-----+------+
| 2 | 3 | 4 | 5 |
'----+----+-----+------'

如果希望所有列的宽度都相同,可以在调用 new 时使用相同的数字:

my $table = Text::SimpleTable->new([1, "A"], [1, "B"], [1, "C"], [1, "D"]);

POD没有指定 new 的参数是什么,所以我不得不查看源代码。

关于perl - 如何在使用 Text::SimpleTable 绘制的每次迭代中清空 $table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74835873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com