use warnings; use strict; use File::Basename; while () { chomp; my $basename = basename($_); my $dirname = dirname ($_); print "$dirname ... $basename\n"; } __DATA__ a/b/c/filename1.someext b/c/filename2.sh d/e/f/g/filename3.exe