#!/usr/bin/perl use strict; use warnings; use File::Spec::Functions qw(splitpath splitdir); my @files = qw( .\folder1\folder11\elementA.xml .\folder1\folder11\elementB.xml .\folder2\folder22\element1.xml .\folder2\folder22\folder222\element11.xml ); for my $file (@files) { my ($volume, $directory, $filename) = splitpath($file); print <## Input: .\folder1\folder11\elementA.xml Volume: Directory: .\folder1\folder11\ Filename: elementA.xml splitdir gives: . folder1 folder11 Input: .\folder1\folder11\elementB.xml Volume: Directory: .\folder1\folder11\ Filename: elementB.xml splitdir gives: . folder1 folder11 Input: .\folder2\folder22\element1.xml Volume: Directory: .\folder2\folder22\ Filename: element1.xml splitdir gives: . folder2 folder22 Input: .\folder2\folder22\folder222\element11.xml Volume: Directory: .\folder2\folder22\folder222\ Filename: element11.xml splitdir gives: . folder2 folder22 folder222