Basta usare 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";
si può vedere questo ritorno i risultati richiesti, ma è anche in grado di catturare le estensioni (nell'ultima sezione sopra):
Directory: /etc/init/tree/errrocodr/
File: a.txt
Suffix:
Directory: /etc/init/tree/errrocodr/
File: a
Suffix: .txt
Non hai già fatto questa domanda a http://stackoverflow.com/questions/3511214/how-to-support-the-searching-file-based-on-regular-expression? Dovresti modificare la domanda originale per chiarirla, piuttosto che pubblicarne una nuova. – Ether
@Ether, questa è una domanda totalmente diversa, che chiede come ottenere un elenco di file basato su un carattere jolly. Questo è più come dividere un singolo filepec nelle sue parti. – paxdiablo