my @path = '.'; while () { chomp; my ($prefix, $node) = split(/(?<=-- )/, $_, 2) or next; $#path = length($prefix)/2 - 1; $path[-1] = $node; print $prefix, join("/" => @path), "\n"; }