为什么我的 Perl 递归函数永远不会结束?
我正在尝试编写以下递归函数。问题是它永远不会结束,我不明白为什么:
sub do_smth(@first, @second){
my @tmp_first = @first;
$tmp = shift(@tmp_first);
if (@tmp_first > 0){
do_smth(@tmp_first, @second);
}
my @tmp_second = @second;
$tmp = shift(@tmp_second);
if (@tmp_second > 0){
do_smth(@first, @tmp_second);
}
}
I'm trying to write the following recursive function. The problem is that it never ends and I can't understand why:
sub do_smth(@first, @second){
my @tmp_first = @first;
$tmp = shift(@tmp_first);
if (@tmp_first > 0){
do_smth(@tmp_first, @second);
}
my @tmp_second = @second;
$tmp = shift(@tmp_second);
if (@tmp_second > 0){
do_smth(@first, @tmp_second);
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这段代码甚至无法编译。如果没有警告和严格,您将得到这些错误:
并且有警告和严格:
我不知道您要做什么,但这是具有正确语法的代码:
This code does not even compile. Without warnings and strict you will get these errors:
and with warnings and strict:
I dont know what you are trying to do, but here is your code with the proper syntax:
您正在移动(未定义的)标量 $tmp_first 和 $tmp_second。
还没再看下去。
You are shifting the (undefined) scalars $tmp_first and $tmp_second.
Haven't looked any further.