diff --git a/Library/Homebrew/dev-cmd/create.rb b/Library/Homebrew/dev-cmd/create.rb
index 12644070fd363a1d27e98029bee851904f3aee24..42045c48cb61561e474abf3b80775f9fd06d797b 100644
--- a/Library/Homebrew/dev-cmd/create.rb
+++ b/Library/Homebrew/dev-cmd/create.rb
@@ -27,6 +27,8 @@ module Homebrew
              description: "Create a basic template for a Go build."
       switch "--meson",
              description: "Create a basic template for a Meson-style build."
+      switch "--perl",
+             description: "Create a basic template for a Perl build."
       switch "--python",
              description: "Create a basic template for a Python build."
       switch "--rust",
@@ -46,7 +48,7 @@ module Homebrew
       switch :force
       switch :verbose
       switch :debug
-      conflicts "--autotools", "--cmake", "--go", "--meson", "--python", "--rust"
+      conflicts "--autotools", "--cmake", "--go", "--meson", "--perl", "--python", "--rust"
     end
   end
 
@@ -81,6 +83,8 @@ module Homebrew
       :meson
     elsif args.go?
       :go
+    elsif args.perl?
+      :perl
     elsif args.python?
       :python
     elsif args.rust?
diff --git a/Library/Homebrew/formula_creator.rb b/Library/Homebrew/formula_creator.rb
index b87b280d108ffab6005693052da4158e3caf8d4f..168436d4ee23042dc652477f0837b19c570d7bde 100644
--- a/Library/Homebrew/formula_creator.rb
+++ b/Library/Homebrew/formula_creator.rb
@@ -108,6 +108,8 @@ module Homebrew
         <% elsif mode == :meson %>
           depends_on "meson" => :build
           depends_on "ninja" => :build
+        <% elsif mode == :perl %>
+          uses_from_macos "perl"
         <% elsif mode == :python %>
           depends_on "python"
         <% elsif mode == :rust %>
@@ -116,8 +118,8 @@ module Homebrew
           # depends_on "cmake" => :build
         <% end %>
 
-        <% if mode == :python %>
-          # Additional Python dependency
+        <% if mode == :perl || mode == :python %>
+          # Additional dependency
           # resource "" do
           #   url ""
           #   sha256 ""
@@ -142,6 +144,26 @@ module Homebrew
               system "ninja", "-v"
               system "ninja", "install", "-v"
             end
+        <% elsif mode == :perl %>
+            ENV.prepend_create_path "PERL5LIB", libexec/"lib/perl5"
+            ENV.prepend_path "PERL5LIB", libexec/"lib"
+
+            # Stage additional dependency (Makefile.PL style)
+            # resource("").stage do
+            #   system "perl", "Makefile.PL", "INSTALL_BASE=\#{libexec}"
+            #   system "make"
+            #   system "make", "install"
+            # end
+
+            # Stage additional dependency (Build.PL style)
+            # resource("").stage do
+            #   system "perl", "Build.PL", "--install_base", libexec
+            #   system "./Build"
+            #   system "./Build", "install"
+            # end
+
+            bin.install name
+            bin.env_script_all_files(libexec/"bin", :PERL5LIB => ENV["PERL5LIB"])
         <% elsif mode == :python %>
             virtualenv_install_with_resources
         <% elsif mode == :rust %>
@@ -154,7 +176,7 @@ module Homebrew
                                   "--prefix=\#{prefix}"
             # system "cmake", ".", *std_cmake_args
         <% end %>
-        <% if mode == :autotools or mode == :cmake %>
+        <% if mode == :autotools || mode == :cmake %>
             system "make", "install" # if this fails, try separate make/make install steps
         <% end %>
           end
diff --git a/docs/Manpage.md b/docs/Manpage.md
index 14be219439f11e8ac4f696c0ac1d0937cd2504f6..e813202421cd010bdace17f7926c9e3af7f113ac 100644
--- a/docs/Manpage.md
+++ b/docs/Manpage.md
@@ -805,6 +805,8 @@ a simple example. For the complete API, see:
   Create a basic template for a Go build.
 * `--meson`:
   Create a basic template for a Meson-style build.
+* `--perl`:
+  Create a basic template for a Perl build.
 * `--python`:
   Create a basic template for a Python build.
 * `--rust`:
diff --git a/manpages/brew.1 b/manpages/brew.1
index 8ba008578a2823de9847d0af8232b5338a2aa1cc..65c6a120133cd1d91fad7572f312e0e65ce79352 100644
--- a/manpages/brew.1
+++ b/manpages/brew.1
@@ -1028,6 +1028,10 @@ Create a basic template for a Go build\.
 Create a basic template for a Meson\-style build\.
 .
 .TP
+\fB\-\-perl\fR
+Create a basic template for a Perl build\.
+.
+.TP
 \fB\-\-python\fR
 Create a basic template for a Python build\.
 .