use File::Spec::Functions qw( catpath curdir splitpath ); my ($volume, $directories, $basename) = splitpath($qfn); $directories = curdir() if !length($directories); my $dirname = catpath($value, $directories, ''); say $dirname; say $basename; #### use Path::Class qw( file ); my $file = file($qfn); my $basename = $file->basename(); my $dirname = $file->parent(); say $dirname; say $basename;