Are you talking about traversing a local checked-out copy of the repository? If so, then there should be nothing special about svn directories: -d, -f, stat, etc. should work normally. Can you post your code? Also check out
File::Find.
If on the other hand you're talking about querying the subversion server, then you can get the info with a subversion command such as svn list -R. For example:
my $repos = q{svn://.../trunk};
my $svn = q{/usr/local/bin/svn};
my $tree = qx{$svn list -R $repos};
print $tree;
Joe