Help for this page
m{/([^/]*?)/([^/]*?)/([^/]*?)\.([a-z0-9]+?)$}
my @parts = (split m{/}, '/x/y/z/a/b/c/d/e.f'); splice @parts, 0, -3; push @parts, split /\./, pop @parts; print "<$_>" for @parts;