sub traverse_nodes { my ($node) = @_; my ($value, $next_node) = @$node; if ( defined($next_node) ) { return ($value, traverse_nodes($next_node)); } else { return $value; } }