#! /usr/bin/perl use strict; use warnings; use File::Basename qw( basename ); my $dir = 'aaa/bbb/ccc.php'; # nicht ersetzen, sondern einfangen; spart Arbeit my ($last_part) = $dir =~ m{([^/]+)$}; # basename nutzen my $basename = basename($dir); # oder alles ersetzen (nicht nur den letzten Teil) $dir =~ s{.*?([^/]+)$}{$1}; print "Matched: $last_part\n", "basename: $basename\n", "Replaced: $dir\n", ; __DATA__ Result should be: Matched: ccc.php basename: ccc.php Replaced: ccc.php