use Devel::Cycle; my $fac; $fac = sub { my ( $n ) = @_; return 1 if $n == 1; return $n * $fac->( $n - 1 ); }; find_cycle($fac); __END__ Cycle (1): $A variable $fac => \&A