#!/usr/bin/perl use strict; # https://perlmonks.org/?node_id=11153644 use warnings; my $cat = { dog => '$cat->{squirrel}', squirrel => 'fred' }; my $x='$cat->{dog}/mouse'; { my %loop; until( $loop{ my $new = eval qq("$x") }++ ) { $x = $new } } print "$x\n";