in reply to My kingdom for a substring

I would create a nest hash of hashes, such as :
my %data = ( 'main' => 'Top Level', 'pc' => ( 'main' => 'PC Software', 'gfx' => ( 'main' => 'Graphics', ... ), .... ) ...);
Namely, one fixed hash entry, in this case 'main', to be the catagory for that directory, and other entries as hashes to other sub directories.

Thus, given a directory path, you can generate the Catagory Path as...

sub get_catagory_path { my @paths = split /\//, $_[0]; # may need to play with leading / my @catagories; my $working_hash = \@data; foreach $dir ( @paths ) { push @catagories $working_hash->{'main'}; $working_hash = $working_hash->{ $dir }; } return join '/', @catagories; }
UNTESTED!!!
Dr. Michael K. Neylon - mneylon-pm@masemware.com || "You've left the lens cap of your mind on again, Pinky" - The Brain