use strict; use warnings; while () { chomp; my ($last) = m|/([^/]+)/[^/]*$|; print "$last\n"; } __DATA__ /rootdir/sub1/sub2/sub3/sub4/ /rootdir/sub1/sub2/sub3/sub4/file /rootdir/ /