A compiled C program is very different from a running perl program.
To try to help clarify your 2nd question a bit more: It is my understanding that, in general, C programs are "compiled" into an executable, whereas Perl scripts are "interpreted" at runtime--each time the script is run (this would not include the executable Perl programs
swiftone mentions, I'm assuming). Hence the differing terms, C
program and Perl
script. Although this adds to the runtime overhead, it makes debugging nicer in Perl since you don't have to re-compile the whole program after every little change. (Please correct me if I'm wrong, though, as I'm still learning Perl and would welcome any chance to improve my understanding)