---
name: "Perl::Critic::Policy::Community::MultidimensionalArrayEmulation"
section: "3pm"
platform: "linux"
package: "libperl-critic-community-perl"
version: "1.0.4-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Perl::Critic::Policy::Community::MultidimensionalArrayEmulation"
---

# Perl::Critic::Policy::Community::MultidimensionalArrayEmulation(3pm)

Don't use multidimensional array emulation

## NAME

Perl::Critic::Policy::Community::MultidimensionalArrayEmulation - Don't use multidimensional array emulation

## DESCRIPTION

When used with the `"@"` or `"%"` sigils, a list in a hash subscript (`"{}"`) will access multiple elements of the hash as a slice. With the `"$"` sigil however, it accesses the single element at the key defined by joining the list with the subscript separator `$;`. This feature is known as "Multi-dimensional array emulation" in perldata and provided a way to emulate a multidimensional structure before Perl 5 introduced references. Perl now supports true multidimensional structures, so this feature is now unnecessary in most cases.

In Perl 5.34 or newer, or automatically under `"use v5.36"` or newer, ""The 'multidimensional' feature" in feature can be disabled to remove this syntax from the parser.

```
  $foo{$x,$y,$z}   # not ok
  $foo{qw(a b c)}  # not ok
  $foo{$x}{$y}{$z} # ok
  @foo{$x,$y,$z}   # ok
```

## AFFILIATION

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

## CONFIGURATION

This policy is not configurable except for the standard options.

## AUTHOR

Dan Book, `"dbook@cpan.org"`

## COPYRIGHT AND LICENSE

Copyright 2015, Dan Book.

This library is free software; you may redistribute it and/or modify it under the terms of the Artistic License version 2.0.

## SEE ALSO

Perl::Critic
