---
title: "Perl Coding Style"
description: "> This file extends [common/coding-style.md](../common/coding-style.md) with Perl-specific content."
type: skill
canonical_url: https://claudary.paisolsolutions.com/skills/coding-style-29
source: "Claudary"
difficulty: intermediate
author: "Claude Code Knowledge Pack"
date: 2026-07-10T11:14:15.856Z
license: CC-BY-4.0
attribution: "Perl Coding Style — Claudary (https://claudary.paisolsolutions.com/skills/coding-style-29)"
---

# Perl Coding Style
> This file extends [common/coding-style.md](../common/coding-style.md) with Perl-specific content.

## Overview

---
paths:
  - "**/*.pl"
  - "**/*.pm"
  - "**/*.t"
  - "**/*.psgi"
  - "**/*.cgi"
---
# Perl Coding Style

> This file extends [common/coding-style.md](../common/coding-style.md) with Perl-specific content.

## Standards

- Always `use v5.36` (enables `strict`, `warnings`, `say`, subroutine signatures)
- Use subroutine signatures — never unpack `@_` manually
- Prefer `say` over `print` with explicit newlines

## Immutability

- Use **Moo** with `is => 'ro'` and `Types::Standard` for all attributes
- Never use blessed hashrefs directly — always use Moo/Moose accessors
- **OO override note**: Moo `has` attributes with `builder` or `default` are acceptable for computed read-only values

## Formatting

Use **perltidy** with these settings:

```
-i=4    # 4-space indent
-l=100  # 100 char line length
-ce     # cuddled else
-bar    # opening brace always right
```

## Linting

Use **perlcritic** at severity 3 with themes: `core`, `pbp`, `security`.

```bash
perlcritic --severity 3 --theme 'core || pbp || security' lib/
```

## Reference

See skill: `perl-patterns` for comprehensive modern Perl idioms and best practices.

---

Source: [Claudary](https://claudary.paisolsolutions.com/skills/coding-style-29) · https://claudary.paisolsolutions.com
