my @path; while () { chomp(); /^((?:\| )*[|`]-- )(.+)/ or next; $#path = length($1)/2 - 3; # truncate path based on tree level push(@path, $2); print $1, "./", join("/" => @path), "\n"; }