编辑:已解决。请参阅下面的解决方案。
我为前 10 个数字编写了以下斐波那契数列程序;但是我无法让它工作。它一直告诉我,Use of uninitialized value $secondLast in addition (+) at fib.plx line 22.
它永远运行。我是初学者 Perl 程序员,所以我确信错误非常简单。谢谢。
#!/usr/bin/perl
use warnings;
use strict;
sub fib(\@$);
my @defaultNums = (1,1);
my $max = 10;
fib(@defaultNums,10);
sub fib(\@$)
{
my $nums_ref = $_[0];
my $max = $_[1];
foreach(@{$nums_ref})
{
print "$_, ";
}
print "\n";
my $last = pop (@{$nums_ref});
my $secondLast = pop (@{$nums_ref});
my $sum = $last + $secondLast;
push (@{$nums_ref}, $sum);
if( scalar @{$nums_ref} >= $max) { return; }
fib (@{$nums_ref},$max);
print "\n";
}
编辑:已解决。请参阅下面的解决方案。