Perl peut-il détecter des tableaux?

J'ai ce script

#!/usr/bin/perl

use warnings;
use strict;
use Data::Dumper;

my %x1 = ();
$x1{"a"} = "e";

my %x2 = ();
$x2{"a"} = ["b","c"];

p(\%x1);
p(\%x2);

sub p {
    my $x = shift @_;
    print $x->{a};
    print "\n";
}

les sorties qui

e
ARRAY(0x2603fa0)

Le problème est que je ne sais pas quand l'entrée est un tableau ou un scalaire, et quand c'est un tableau que je voudrais imprimer ces valeurs.

Peut p être modifié pour ce faire?

source d'informationauteur Sandra Schlichting