Perl::Critic::Policy::Community::OpenArgs(3pm)

Perl::Critic::Policy::Community::OpenArgs3pm

Always use the three-argument form of open

Overview

The open() function may be called in a two-argument form where the filename is parsed to determine the mode of opening, which may include piping input or output. (In the one-argument form, this filename is retrieved from a global variable, but the same magic is used.) This can lead to vulnerabilities if the filename is retrieved from user input or could begin or end with a special character. The three-argument form specifies the open mode as the second argument, so it is always distinct from the filename.

  open FILE;                   # not ok
  open my $fh, "<$filename";   # not ok
  open my $fh, '<', $filename; # ok

This policy is similar to the core policy Perl::Critic::Policy::InputOutput::ProhibitTwoArgOpen, but additionally prohibits one-argument opens.

Affiliation

This policy is part of Perl::Critic::Community.

Configuration

This policy is not configurable except for the standard options.

Releases

2 releases since Debian 12 (Bookworm); the text changed 1 time.

  1. 12
  2. 13

Author

Dan Book, "[email protected]"

From libperl-critic-community-perl 1.0.4-1 in Debian 13 (Trixie). Parsed by carta from the page's man source.