#!/usr/bin/perl use strict; use warnings; my( $count1, $count2 ); sub a1 { a2b2( --$_[ 1 ], 1 ); a2b2( $_[ 0 ], !1 ); } sub a2b2 { $_[ 1 ] or goto a2; { b2: $count2++; a2: $count1++; $_[ 0 ]-- and redo; } } my( $n1, $n2 ) = ( 100, 50 ); a1( $n1, $n2 ); print "c1: $count1; c2: $count2\n";