何が起こっているのか非常にわかりません。のさまざまな長さに対して@depths
、コードは一般的に機能します。ただし、出力全体を通して、特定の時点で、プログラムは初期化されていない値の使用について苦情を申し立てます。
エラーは行 20 を非難します。print $chars[$depths[$y]];
明らかなことである場合は事前にお詫び申し上げますが、問題を見逃していることは間違いありません。私は運がないので約1時間グーグルで検索しましたので、正しい方向へのナッジは非常に高く評価されます!
完全なコード:
#! /usr/bin/perl -w
use strict;
use warnings;
#my @chars = ("0" .. "9");
#my @depths = (0) x 4;
my @chars = ("0" .. "1");
my @depths = (0) x 3;
my ($i, $x, $y);
for ($i = 0; $i < @chars ** @depths; $i++) {
for ($y = 0; $y < @depths; $y++) {
print $chars[$depths[$y]];
}
print"\n";
$depths[$#depths]++;
for($x = 0; $x < @depths; $x++) {
if($depths[$x] == @chars) {
$depths[$x-1]++;
while($x < @depths) {
$depths[$x++] = 0;
}
}
}
}
出力:
000
001
010
011
Use of uninitialized value in print at a.pl line 15.
00
100
101
110