Perl::Critic::Policy::BuiltinFunctions::ProhibitLvalueSubstr(3pm)

Perl::Critic::Policy::BuiltinFunctions::ProhibitLvalueSubstr3pm

Use 4-argument "substr" instead of writing "substr($foo, 2, 6) = $bar".

Affiliation

This Policy is part of the core Perl::Critic distribution.

Overview

Conway discourages the use of substr() as an lvalue, instead recommending that the 4-argument version of substr() be used instead.

    substr($something, 1, 2) = $newvalue;     # not ok
    substr($something, 1, 2, $newvalue);      # ok

The four-argument form of substr() was introduced in Perl 5.005. This policy does not report violations on code which explicitly specifies an earlier version of Perl (e.g. "use 5.004;").

Configuration

This Policy is not configurable except for the standard options.

Releases

10 releases since Debian 5.0 (Lenny); the text changed 9 times.

  1. 5.0
  2. 6.0
  3. 7
  4. 8
  5. 9
  6. 10
  7. 11
  8. 12
  9. 13
  10. Arch

Author

Graham TerMarsch <[email protected]>

From perl-perl-critic 1.156-3 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.