#! /usr/bin/perl use strict; use warnings; my $tree; LINE: while (<>) { chomp; my $base=\$tree; warn($_),next if !s#^/##; warn($_),next if m#//#; warn($_),next if m#/$#; for (split qr#/#) { next LINE if ${$base}->{""}; $base=\(${$base}->{$_}); } ${$base}->{""}=1; } #use Data::Dumper; #print Dumper $tree; sub out($$); sub out($$) { my($base,$where)=@_; if ($base->{""}) { print $where."\n"; return; } for (sort keys(%$base)) { next if $_ eq ""; out($base->{$_},"$where/$_"); } } out($tree,"");