Sólo tiene que utilizar Basename:
use File::Basename;
$fullspec = "/etc/init/tree/errrocodr/a.txt";
my($file, $dir, $ext) = fileparse($fullspec);
print "Directory: " . $dir . "\n";
print "File: " . $file . "\n";
print "Suffix: " . $ext . "\n\n";
my($file, $dir, $ext) = fileparse($fullspec, qr/\.[^.]*/);
print "Directory: " . $dir . "\n";
print "File: " . $file . "\n";
print "Suffix: " . $ext . "\n";
Esto se puede ver la devolución de los resultados requeridos, pero es también es capaz de capturar las extensiones (en la última sección anterior):
Directory: /etc/init/tree/errrocodr/
File: a.txt
Suffix:
Directory: /etc/init/tree/errrocodr/
File: a
Suffix: .txt
¿Ya no hizo esta pregunta en http://stackoverflow.com/questions/3511214/how-to-support-the-searching-file-based-on-regular-expression? Debe editar su pregunta original para aclararla, en lugar de publicar una nueva. – Ether
@Ether, esa es una pregunta totalmente diferente, preguntando cómo obtener una lista de archivos basados en un comodín. Este es más cómo dividir una sola especificación de archivos en sus partes. – paxdiablo