Используйте 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"
}