`open my $fh, '-|', 'ls', '-l', $dir` should do the trick I think, but apparently it only works on platforms with a "real fork" (so fine as long as you don't care about Windows, probably).
I'm not saying it can't be done, just that the language is oddly lacking in convenience for this use case.
You loose.