The first way to run a script file - explicitiy - involves explicitly naming the interpreter to be used, and passing the script file as an argument, as in :
$ bash bashfile $ perl perlfileand so on.
Running a script file explicitly has the following implications:
The script file needs no initial interpreter line, since you're invoking the interpreter explicitly yourself on the command line. (If the file does have an interpreter line, that line is ignored.)
The script file also needs only read permission. There's no need for execute permission since, technically, the file is being used simply for input to the interpreter. This can be handy when you're trying to run the script of someone else who forgot to grant execute rights to the file.
Finally, there's no need for the script file itself to be located on your search path; it's your job to make sure you identify the file properly so that the interpreter can find it.
On the other hand, you do have to make sure that the interpreter itself is in your search path (unless you want to run it by its absolute path name, such as /usr/bin/python).