App-rs
view release on metacpan or search on metacpan
} else {
my ($t, $_t) = ($p->{$_}{mode} & S_IFMT, $q->{$_}{mode} & S_IFMT);
if ($t == S_IFDIR xor $_t == S_IFDIR) { ... }
elsif ($t == S_IFDIR) { merge($p->{$_}{c}, $q->{$_}{c}) }
}
}
}
# add path r from v to p.
sub grow {
my ($p, $v, $r) = @_;
my @d = split m|/|, $r;
my $f = pop @d;
for (@d) {
$p->{$_} = {%{$v->{$_}},
c => {}} if not $p->{$_};
$p = $p->{$_}{c}, $v = $v->{$_}{c};
}
$p->{$f} = $v->{$f};
}
sub rm {
my ($cp, $vp) = @_;
# the next steps.
diff($oid);
tag($oid) unless $s->{cpan};
}
sub _which {
my $r = shift;
if ($r =~ m{^/}) {
die c(RR, "Absolute path $r not prefixed by $s->{root}"), ".\n" unless 0 == index $r, $s->{root};
$r = substr $r, length $s->{root};
}
my ($d, @p) = (0, split m{/}, $r);
{subr => sub {
my $o = shift;
if ($o->{event} eq 'ent') {
my $u = $d >= @p || $o->{ent} eq $p[$d];
$d += 1 if $u and $o->{db}{c};
$u;
} elsif ($o->{event} eq 'ret') {
$d -= 1, 0;
}
}, prophet => 1};
( run in 0.878 second using v1.01-cache-2.11-cpan-0c5ce583b80 )