cosimo has asked for the wisdom of the Perl Monks concerning the following question:

Some colleague asked it the other day, and I realized I didn't know that, so, why Makefile.PL is actually called Makefile.PL with capitalized "PL" ?

Replies are listed 'Best First'.
Re: Why Makefile.PL is called Makefile.PL with capitalized .PL ?
by ikegami (Patriarch) on Nov 15, 2010 at 18:35 UTC
    I bet that the Makefile has rules for handling .pl files, and Makefile.PL should be excluded.
      ExtUtils::MakeMaker

      PL_FILES

      MakeMaker can run programs to generate files for you at build time. By default any file named *.PL (except Makefile.PL and Build.PL) in the top level directory will be assumed to be a Perl program and run passing its own basename in as an argument. For example...

      PM

      Hashref of .pm files and *.pl files to be installed. e.g.

      {'name_of_file.pm' => '$(INST_LIBDIR)/install_as.pm'}
      By default this will include *.pm and *.pl and the files found in the PMLIBDIRS directories. Defining PM in the Makefile.PL will override PMLIBDIRS. PMLIBDIRS

      Ref to array of subdirectories containing library files. Defaults to [ 'lib', $(BASEEXT) ]. The directories will be scanned and any files they contain will be installed in the corresponding location in the library. A libscan() method can be used to alter the behaviour. Defining PM in the Makefile.PL will override PMLIBDIRS.

      (Where BASEEXT is the last component of NAME.)

      Also, before perl had modules (*.pm), libraries were *.pl files, so *.pl files are assumed to be perl4 style compatibility modules