1

perl 新手。我正在尝试从哈希数组的值中进行 grep。有人可以解释为什么我在尝试时会出现未初始化的值错误

#!/usr/bin/perl
use strict;
use warnings;

my %families = (Flintstone => [ qw(Pebbles)                    ],
            Simpson    => [ qw(Bart Lisa Maggie)           ],
            Keaton     => [ qw(Alex Mallory Jennifer Andy) ]);
my $user = 'Mary';
foreach my $name (keys %families)
{
    print "$name has @{$families{$name}} \n";

    if (grep /$user/,@{families{$name}})
    {
    print "User $user found \n"
    }
    else
    {
    print "User $user not found";
    }
}

更新:谢谢。我修复了 $name。但是 grep 似乎对我不起作用。即,如果我将 $user 更改为 Bart,我仍然找不到用户 Bart。

4

2 回答 2

2

你的意思是

@{$families{$name}}

代替

@{families{name}}

也许?

于 2013-02-26T20:29:50.463 回答
1

你会注意到你在第 13 行得到了错误,但在第 11 行没有?缺少的 $ 可能很重要。

于 2013-02-26T20:31:09.213 回答