in reply to Perl wrapper

Seem to me it's simpler if you avoid the recursion altogether.

script:

#!/bin/sh wrapper real_script "$@"

wrapper:

#!/bin/sh perl "$@"

real_script:

#!perl -w 4; print("Hello, World\n");
$ script Useless use of a constant (4) in void context at real_script line 2. Hello, World