#!/usr/bin/perl -w use strict; use Data::Dumper; my $mountpoint = '/media/sdb2'; my %filesystem; $filesystem{$mountpoint} = traverse($mountpoint); sub traverse{ my %hash; my ($folder) = $_[0]; opendir DIR,$folder; my @content = grep {!/^\.{1,2}$/} readdir DIR; closedir DIR; foreach my $entry(sort @content){ if(-f $folder."/".$entry){ $hash{lc $entry} = $entry; }elsif( -d $folder."/". $entry){ $hash{$entry}= traverse($folder."/".$entry); }else{ print $folder."/".$entry." ignoring\n"; }; }; return %hash; }; print Dumper %filesystem; #### $hash{aaa}{bbb}{ccc}="ccC"; if(exists $hash{lc aAa}{lc bBB}{lc CCC}){ print "exists: $hash{lc aAa}{lc bBB}{lc CCC}\n"; }else{ print "not exists\n"; };