Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

Select Status


perl (42) Versions 8.0.6

Installs perl and provides a resource for maintaining CPAN modules

cookbook 'perl', '= 8.0.6', :supermarket
cookbook 'perl', '= 8.0.6'
knife supermarket install perl
knife supermarket download perl
Quality 50%

perl Cookbook

Cookbook Version
CI State

Manages Perl installation and provides cpan_module, to install modules from... CPAN.


This cookbook is maintained by the Sous Chefs. The Sous Chefs are a community of Chef cookbook maintainers working together to maintain important cookbooks. If you’d like to know more please visit or come chat with us on the Chef Community Slack in #sous-chefs.



  • Debian/Ubuntu/Mint
  • RHEL/CentOS/Scientific/Amazon/Oracle
  • Fedora
  • openSUSE
  • Windows


  • Chef 13.4+


  • none


  • default - On Linux installs perl packages and pulls cpanm from Github. On Windows installs the Strawberry Perl Chocolatey package. Requires Chocolatey to be installed prior to running this cookbook, which can be done with the chocolatey cookbook from the Supermarket.


The cookbook ships with a sane set of platform specific attributes for installing perl as well as cpanm. There should be no need to modify these attributes to use this cookbook.

  • node['perl']['packages'] - platform specific packages installed by default recipe
  • node['perl']['cpanm']['path'] - platform specific path for cpanm binary to live
  • node['perl']['cpanm']['url'] - URL to download cpanm script from (*nix only)
  • node['perl']['cpanm']['checksum'] - checksum for the above remote file (*nix only)
  • node['perl']['version'] - version of perl to install. (windows only)
  • node['perl']['cpanm']['path'] - The path to the cpanm binary. On *nix systems this is where the file will be installed. On Windows it's part of Strawberry Perl so no additional installation is required.
  • node['perl']['cpanm']['suppress_diff'] - Whether or not to suppress the diff of the cpanm file.




  • :install - install the module (default action)
  • :uninstall - uninstall the module


  • module_name - The name of the module if it's different than the name of the resource property
  • force - To force the install within cpanm (default: false)
  • test - To do a test install (default: false)
  • version - Any version string cpanm would find acceptable
  • cwd - A path to change into before running cpanm


To install a module from CPAN:

cpan_module 'App::Munchies'

Optionally, installation can forced with the 'force' parameter.

cpan_module 'App::Munchies'
  force true

You can also use cpanm's version mechanism to grab a specific version, or glob a version.

Exactly version 1.01 of App::Munchies will be installed:

cpan_module 'App::Munchies'
  version '== 1.01'

At least version 1.01 of App::Munchies will be installed:

cpan_module 'App::Munchies'
  version '1.01'

At least version 1.01 will be installed, but not version 2:

cpan_module 'App::Munchies'
  version '>= 1.01, < 2.0'

Additionally, you can use the cpan_module LWRP to delete a given package (uses cpanm's --uninstall param)

cpan_module 'App::Munchies'
  action :uninstall


This project exists thanks to all the people who contribute.


Thank you to all our backers!


Support this project by becoming a sponsor. Your logo will show up here with a link to your website.

Dependent cookbooks

This cookbook has no specified dependencies.

Contingent cookbooks

apache2_odin_auth Applicable Versions
backuppc-server Applicable Versions
bamboo Applicable Versions
freightyard Applicable Versions
gitlab Applicable Versions
ldapknife Applicable Versions
logwatch Applicable Versions
mogilefs Applicable Versions
munin-statsd Applicable Versions
nginx_simplecgi Applicable Versions
openvas Applicable Versions
rackspaceknife Applicable Versions
radiator Applicable Versions
sanoid Applicable Versions
smokeping Applicable Versions
snmp Applicable Versions
spacewalk-server Applicable Versions
sparrow Applicable Versions
sqitch Applicable Versions
stash Applicable Versions
taskwarrior Applicable Versions
zone2ldif Applicable Versions

perl Cookbook CHANGELOG

This file is used to list changes made in each version of the perl cookbook.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

8.0.6 - 2023-03-15

Standardise files with files in sous-chefs/repo-management

8.0.5 - 2023-02-23

Standardise files with files in sous-chefs/repo-management

8.0.4 - 2023-02-15

8.0.3 - 2023-02-14

Standardise files with files in sous-chefs/repo-management

8.0.2 - 2022-12-15

Standardise files with files in sous-chefs/repo-management

8.0.1 - 2022-08-04

Standardise files with files in sous-chefs/repo-management

8.0.0 - 2022-02-08

  • Enable unified_mode and require Chef >= 15.3
  • Remove delivery and move to calling RSpec directly via a reusable workflow
  • Update tested platforms
  • Standardise files with files in sous-chefs/repo-management

7.1.3 - 2022-02-08

  • Remove delivery folder

7.1.2 - 2021-08-30

  • Standardise files with files in sous-chefs/repo-management

7.1.1 (2021-05-11)

  • Standardise files with files in sous-chefs/repo-management

7.1.0 (2020-11-05)


  • Sous Chefs Adoption
  • Update Changelog to Sous Chefs
  • Update to use Sous Chefs GH workflow
  • Update README to sous-chefs
  • Update metadata.rb to Sous Chefs
  • Update test-kitchen to Sous Chefs


  • ChefSpec fixes
  • Yamllint fixes
  • Fix FreeBSD installation


  • Add mdlrc
  • Add Ubuntu 20.04 testing


  • Remove EL 6 testing
  • Remove Amazon Linux 1 testing

7.0.1 (2018-07-24)

  • Fix readme chef version requirement

7.0.0 (2018-07-24)

  • Remove windows cookbook dependency and require Chef 13.4+

6.0.1 (2018-02-16)

  • Allow suppressing the cpanm diff with a new attribute
  • Remove the ChefSpec matchers that are autogenerated now

6.0.0 (2017-11-27)

Breaking changes

  • On Windows this cookbook now uses the Chocolatey package manager to install Strawberry Perl instead of downloading the zip file and manually installing it. This does require chocolatey to first be installed on the system and will use the C:\strawberry\perl path

Other Changes

  • Fixed Amazon Linux support on Chef 13
  • Removed build-essential from the Berksfile since it wasn't needed there
  • Fixed cpan_module resource to work on Windows as well
  • Added Windows 2016 Testing
  • Improved attribute and resource documentation in the readme

5.3.0 (2017-11-27)

  • Fixing the removal of the leading v and the conversion of the underscores to dots in Perl module versions when the version strings already have dots (ex: v1.2.0)
  • Enable FC016 testing again
  • Use the latest cpanm which has 4 years of bug fixes and enhancements

5.2.1 (2017-08-30)

  • Do not use an explicit owner and group on Windows. Let Chef do the right thing here which prevents breakage when the Administrator account has been renamed

5.2.0 (2017-05-06)

  • Fix license string to be a SPDX standard license string
  • Simplify true/false statement
  • Depend on a modern windows cookbook
  • Require Chef 12.7+ to workaround an action_class bug

5.1.0 (2017-03-01)

  • Resolve resource cloning in the test cookbook
  • Test with Local Delivery instead of Rake
  • Use the root_group attribute from Ohai instead of defining it ourselves
  • Use multi-package to speed up installs in the default recipe
  • Don't use "module" as a resource property since its reserved. Instead use module_name and wire it up so a user can actually define a module name here instead of the module name coming from the name of the resource

5.0.0 (2017-02-27)

  • Convert the existing HWRP to a custom resource and require Chef 12.5 and later

4.0.0 (2016-09-03)

  • Testing updates
  • Require Chef 12 or later

v3.1.0 (2016-08-05)

  • Added support for SUSE / openSUSE and IBM zlinux

v3.0.0 (2016-04-07)

  • Removed installation of the libwww-perl package, which is not required for Perl to function out of the box and can be installed by CPAN instead
  • Resolved Chef 13 compatibility warnings in the cpan_module provider
  • Updated the Windows Perl download URL to the new server
  • Updated Perl to on Windows
  • Added the windows cookbook as a dependency so the Windows install converges
  • Added module install / uninstall to the default Test Kitchen suite
  • Added a basic Kitchen Inspec test to ensure perl is installed
  • Added build-essential to the test cookbook so module installs would complete
  • Added perl-devel to RHEL 6+ hosts

v2.0.0 (2015-09-24)

  • Rewrote cpan_module definition as a LWRP with Chefspec tests and matchers
  • Add the ability to select version in the cpan_module LWRP
  • Fixed cpan_module incompatibility with Chef 12
  • Fixed download location for cpanm to prevent failures on the redirect
  • Removed Chef 10 compatibility. This cookbook now requires 11+
  • Added libwww-perl installation on Debian systems
  • Added support for RHEL/CentOS 7 and Fedora to the default.rb recipe
  • Added source_url and issues_url metadata
  • Added a chefignore file to limit files uploaded to the server
  • Updated Contributing and Testing docs
  • Added a rakefile for simplified testing
  • Added and maintainers.toml file and a Rake task for generating MD from TOML
  • Updated platforms tested in Kitchen CI and update the Kitchen config format
  • Updated to the standard chef .rubocop.yml file
  • Updated all testing and development gems to the latest
  • Add basic Chefspec test
  • Updated Travis CI to test on modern ruby versions and reenabled rspec and foodcritic testing
  • Added cookbook version and Travis CI badges to the readme
  • Added a .foodcritic file to skip FC015
  • Removed all references to Opscode
  • Remove the Gemfile.lock that shouldn't have been committed

v1.2.4 (2014-06-16)

  • [COOK-4725] Use windows_path to set the PATH


New Feature

  • COOK-4013 - add omnios support to perl cookbook





  • [COOK-2973]: perl cookbook has foodcritic errors


  • [COOK-1765] - Install Strawberry Perl on Windows in Perl Cookbook


  • [COOK-1300] - add support for Mac OS X


  • [COOK-1129] - move lists of perl packages to attributes by platform
  • [COOK-1279] - resolve regression from COOK-1129
  • [COOK-1299] - use App::cpanminus (cpanm) to install "cpan packages"


  • [COOK-1279] Re-factor recipe and fix platform_version 5 bug for redhat family platforms


  • [COOK-1129] centos/redhat needs the CPAN RPM installed


  • Current released version

Collaborator Number Metric

8.0.6 passed this metric

Contributing File Metric

8.0.6 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of, and your repo must contain a file

Cookstyle Metric

8.0.6 passed this metric

No Binaries Metric

8.0.6 passed this metric

Testing File Metric

8.0.6 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of, and your repo must contain a file

Version Tag Metric

8.0.6 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of, and your repo must include a tag that matches this cookbook version number