编写一个脚本,从一叠纸牌中随机抽出10张,并打印结果值。

a:该脚本应当先借助foreach循环构建一套52张牌。

b:外层循环负责按照花色遍历整套纸牌:梅花,方块,红桃,黑桃。内层循环则针对每一种花色遍历所有数字:A、1到10、J、Q、K。从各种花色获得的纸牌都将赋值到一个数组中。

c:使用rand()函数从上述数组中随机获得一张纸牌。这样做便能保证获得的10张纸牌互不重复。

[root@dou shili]# cat 53.pl
#!/usr/bin/perl -w
use strict;

my @cards;
my $how_many = 10;
my @colors = qw/hearts spades diamonds clubs/;
my @nums = qw/A 2 3 4 5 6 7 8 9 10 J Q K/;

foreach my $suit (@colors)
{
      foreach my $num (@nums) {
          push(@cards, [$num, $suit]);
          }
}

foreach (1 .. $how_many)
{
     my $idx = int(rand(scalar(@cards)));
     my $card = splice(@cards, $idx, 1);
     print "The card is $card->[1]:$card->[0]\n";
}