This function causes an immediate core dump. See also the -u
command-line switch in perlrun, which does the same thing.
Primarily this is so that you can use the undump program (not
supplied) to turn your core dump into an executable binary after
having initialized all your variables at the beginning of the
program. When the new binary is executed it will begin by executing
a goto LABEL
(with all the restrictions that goto
suffers).
Think of it as a goto with an intervening core dump and reincarnation.
If LABEL
is omitted, restarts the program from the top.
WARNING: Any files opened at the time of the dump will not be open any more when the program is reincarnated, with possible resulting confusion on the part of Perl.
This function is now largely obsolete, partly because it's very
hard to convert a core file into an executable, and because the
real compiler backends for generating portable bytecode and compilable
C code have superseded it. That's why you should now invoke it as
CORE::dump()
, if you don't want to be warned against a possible
typo.
If you're looking to use dump to speed up your program, consider
generating bytecode or native C code as described in perlcc. If
you're just trying to accelerate a CGI script, consider using the
mod_perl
extension to Apache, or the CPAN module, CGI::Fast.
You might also consider autoloading or selfloading, which at least
make your program appear to run faster.