The argument quickly becomes: if you wrote it in Perl it would still be C. A language is just a set of grammar, instructions, and symbols. At what level it reaches the processor is something of an implementation detail really. Witness the various flavors of Perl 6 so far. A language with a specification is a language whether or not it's entirely translated from the written page to something executable outside a developer's brain.

I believe that if you write in a language you create an application or program. So not matter what you wrote in Perl it would still be Perl.

Your program is in Perl, yes. But not the code written in the language your Perl program is interpreting or compiling. Everything is written in something else.

I believe you would need to create a new compiler with or without a scripting interface to pass instructions directly to the processor.

This isn't how Perl is done, so how can you call it a language? :D Nothing passes instructions to the processor these days; even C goes through several transformations before it becomes assembly, and then even assembly is transformed (not trivially!) to opcodes.

The truth is, these are all just implementation details. It doesn't matter how the language interpretation takes place; only how it is interpreted semantically—i.e. what meaning you give to it.

This is done through a process called "bootstrapping". Basically, once one's compiler is sufficiently implemented in some language, one can port the compiler to the language it compiles. At that point, the original source is no longer needed; the previous version of the compiler can be used to build the next.