Perl中级第四章课后习题

1.下列表达式各表示什么不同的含义:
$ginger->[2][1]
${$ginger[2]}[1]
$ginger->[2]->[1]
${$ginger->[2]}[1]

除第2个表示数组的元素,其他的都表示相同的意义

 

4. 9. 2. 练习2 [30 分钟]
运用书中最后那个版本的check_required_items , 写一个子程序
check_items_for_all , 把一个散列引用作为惟一参数.这个散列引用的键是在
Minnow 船上的所有乘客, 其对应的值是他们各自想带上船的东西。
比如, 这个散列引用可以是这样的:
my @gilligan =. . . gilligan items. . . ;
my @skipper =. . . skipper items. . . ;
my @professor =. . . professor items. . . ;
my %all = (
Gilligan => \@gilligan,
Skipper => \@skipper,
Professor => \@professor,
);
check_items_for_all(\%all);
我们新建的那个子程序要调用check_required_items 来为散列中每个人更新其
必需的装备清单。

my @gilligan = qw(red_shirt hat lucky_socks water_bottle);
my @skipper = qw(blue_shirt hat jacket preserver sunscreen);
my @professor = qw(sunscreen water_bottle slide_rule batteries radio);
my %all = (
     Gilligan => \@gilligan,
    Skipper => \@skipper,
    Professor => \@professor,
);
check_items_for_all(\%all);


sub check_items_for_all {
    my $all = shift ;

    foreach my $person ( keys %{$all} ) {
        check_required_items($person,$all->{$person});

    }


}


sub check_required_items{
    my $who = shift ;
    my $items = shift;

    my @required = qw(preserver sunscreen water_bottle jacket);
    my @missing = ( );

    foreach my $item (@required) {
        unless ( grep $item eq $_ ,@$items ) {
            print "$who is missing $item. \n";
            push @missing,$item;
        }
    }


    if (@missing) {
        print "Adding @missing to @$items for $who. \n";
        push @$items,@missing;
    }


}

转载于:https://www.cnblogs.com/tjxwg/p/3374052.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值