#!/usr/bin/perl use strict; use warnings; use Algorithm::Graphs::TransitiveClosure qw /floyd_warshall/; my $g; while () { my ($from, $to) = split; $g -> {$from} -> {$to} = 1; } floyd_warshall $g; while (my ($key, $value) = each %$g) { print "Recursion for function '$key'\n" if exists $g -> {$key} {$key}; } __DATA__ aaa bbb bbb ccc bbb ddd ccc ddd ddd aaa ddd eee