sub A { return 0 if $_[1] == 0; return 2*$_[1] if $_[0] == 0; return 2 if $_[1] == 1; my $mm= $_[0]-1; --$_[1]; $_[1]= &A; $_[0]= $mm; return &A; }