use File::Spec qw/splitdir/; my @files = glob "*/*/*"; foreach my $file (@files) { my ($artist, $album, $track) = File::Spec->splitdir($file); # Do something to $file using these vars and a module to # get/set tags }