fileparse(@mtf,qr/\.[^.]*$/);
не имеет смысла. Поскольку вы должны убедиться, что @mtf
содержит ровно один элемент, чтобы это работало, нет смысла использовать массив вместо скаляра.
Вы не показали, что содержится в @mtf
, но, по-видимому, это не единственный элемент или один элемент не соответствует шаблону регулярного выражения \.[^.]*$
.