gpt4 book ai didi

perl - 如何在 Perl 中将 undef 值打印为零?

转载 作者:行者123 更新时间:2023-12-03 18:27:40 24 4
gpt4 key购买 nike

我正在使用 AoA 在 Perl 中构建一个计数矩阵:my @aoa = ()然后调用$aoa[$i][$j]++每当我需要增加特定单元格时。由于某些单元格根本没有增加,它们被留下undef (这些相当于 0 个计数)。

我想从矩阵中打印一些行,但出现 undef 的错误单元格(我只想将其打印为零)。我该怎么办?

最佳答案

使用defined使用条件运算符 (?:)。

#!/usr/bin/perl

use strict;
use warnings;

my @matrix;

for my $i (0 .. 3) {
for my $j (0 .. 3) {
if (rand > .5) {
$matrix[$i][$j]++;
}
}
}

for my $aref (@matrix) {
print join(", ", map { defined() ? $_ : 0 } @{$aref}[0 .. 3]), "\n"
}

如果您使用的是 Perl 5.10 或更高版本,则可以使用定义或运算符 ( //)。
#!/usr/bin/perl

use 5.012;
use warnings;

my @matrix;

for my $i (0 .. 3) {
for my $j (0 .. 3) {
if (rand > .5) {
$matrix[$i][$j]++;
}
}
}

for my $aref (@matrix) {
print join(", ", map { $_ // 0 } @{$aref}[0 .. 3]), "\n"
}

关于perl - 如何在 Perl 中将 undef 值打印为零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3709776/

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