+ -
当前位置:首页 → 问答吧 → 帮忙看看

帮忙看看

时间:2010-07-29

来源:互联网

  1.       1 #!/usr/bin/perl
  2.       2 use warnings;
  3.       3 #use strict;
  4.       4
  5.       5  $root="1";
  6.       6  %tree=(
  7.       7         "1left"=>2,
  8.       8         "1right"=>3,
  9.       9         "2left"=>4,
  10.      10         "2right"=>5,
  11.      11         "3left"=>6,
  12.      12         "3right"=>7
  13.      13 );
  14.      14
  15.      15 &print_tree($root);
  16.      16
  17.      17 sub print_tree(){
  18.      18
  19.      19         local $node=@_;
  20.      20         local ($left,$right);
  21.      21         $left=$node."left";
  22.      22         $right=$node."right";
  23.      23
  24.      24         if($tree{$left} ne "")
  25.      25         {
  26.      26         &print_tree($tree{$left});
  27.      27         }
  28.      28
  29.      29         print "$node\n";
  30.      30
  31.      31         if($tree{$right} ne "")
  32.      32         {
  33.      33         print "$right => $tree{$right}\n";
  34.      34         &print_tree($tree{$right});
  35.      35         }
  36.      36 }
  37.      37
  38.      
  39. Deep recursion on subroutine "main::print_tree" at tree.pl line 26.
复制代码
哪里写错了吗???

作者: leal402   发布时间: 2010-07-29

local $node=@_;改为local $node=shift;

否则一致为1,不停循环。

作者: yybmsrs   发布时间: 2010-07-29

use warnings可以没有
use strict一定要有
LZ搞反了哈~

作者: 兰花仙子   发布时间: 2010-07-29

回复 yybmsrs


    多谢!

作者: leal402   发布时间: 2010-07-29

回复 兰花仙子


    多谢。

作者: leal402   发布时间: 2010-07-29