use strict;
use warnings;
use Cwd;
my $marker = '.marker';
cwd =~ m#^(.*)(?:/|$)(??{ print "at level '$1' \n"; ! -f "$1/$marker"})# or die "'$marker' not found";
print "found '$marker' in '$1' \n";
####
c:\@Work\Perl\monks\1nickt\two\one\zero>perl find_marker_1.pl
at level 'c:/@Work/Perl/monks/1nickt/two/one/zero'
at level 'c:/@Work/Perl/monks/1nickt/two/one'
at level 'c:/@Work/Perl/monks/1nickt/two'
at level 'c:/@Work/Perl/monks/1nickt'
at level 'c:/@Work/Perl/monks'
found '.marker' in 'c:/@Work/Perl/monks'
####
use 5.010; # needs (?(?{ CODE })yes-pattern) regex extension
use strict;
use warnings;
use Cwd;
my $marker = '.marker';
cwd =~ m{
\A (.*) (?: / | \z)
# (??{ print "at level '$1' \n"; ! -f "$1/$marker"})
(?(?{ print "at level '$1' \n"; ! -f "$1/$marker" }) (*FAIL))
}xms
or die "'$marker' not found";
print "found '$marker' in '$1' \n";
####
c:\@Work\Perl\monks\1nickt\two\one\zero>perl find_marker_2.pl
at level 'c:/@Work/Perl/monks/1nickt/two/one/zero'
at level 'c:/@Work/Perl/monks/1nickt/two/one'
at level 'c:/@Work/Perl/monks/1nickt/two'
at level 'c:/@Work/Perl/monks/1nickt'
at level 'c:/@Work/Perl/monks'
at level 'c:/@Work/Perl'
at level 'c:/@Work'
at level 'c:'
'.marker' not found at find_marker_2.pl line 62.