The perl version of the script, perl_script, looks like this:
#! /usr/bin/perl for ($i = 0; $i <= $#ARGV; $i++) { print "$ARGV[$i]\n"; }
If you invoke it as ./perl_script one two three, the loader invokes it as /usr/bin/perl ./perl_script one two three, and then perl removes itself and the name of the script from the argument list. The output looks like this:
one two three