No harder than your method, since you can pass open file handles to open3 or open-style dup instructions.
STDIN is moot. None of solutions pass anything to STDIN, since we weren't asked to pass anything to STDIN. You can close the child's STDIN if you want, or you can tie it to the parent's STDIN (by passing '<&STDIN') if you want.
Similarly, you can do anything you want with the child's STDOUT. You can tie it to the parent's STDOUT ('>&STDOUT'), you can close it, you can redirect it to /dev/null, etc.
|