休息时间
作者:Eric Hodges
今天是星期一早上,至少有一半的人周末加班了,每个人都有些疲惫,但还有大量的工作要做。因此,好心的助理决定去给大家买咖啡。每个人可以选择拿铁、浓缩咖啡或卡布奇诺。助理挨个办公室询问订单。(每个办公室都有几个人。)他写下办公室号,然后是拿铁、浓缩咖啡和卡布奇诺的数量。他的清单如下所示
Office 100 Espresso 3 Latte 1 Cappuccino 1 Office 200 Cappucino 2 Latte 2 Espresso 1 Office 300 …
等等。然而,他一完成就意识到自己遇到了一个问题:他不想分别订购 3 杯浓缩咖啡、1 杯浓缩咖啡和 2 杯浓缩咖啡等。他需要订购每种饮料的总数。如果您从包含订单的文本文件(Scripting Games 2008 竞赛包中的 Coffee.txt)中读取数据,并正确输出助理需要订购的每种饮料的数量统计,则您将成功完成此事件,如下所示
Espresso: 15 Latte: 10 Cappuccino: 14
请确保将文件 Coffee.txt 放在 C:\Scripts 文件夹中。如果引用 C:\Scripts\Coffee.txt 以外的任何路径,则脚本在我们测试时可能会失败。
use v6; my $coffee-list = $*SPEC.catdir($*PROGRAM-NAME.IO.dirname, 'coffee.txt'); my $lines = slurp($coffee-list).chomp; my %order; for $lines.split(/\n/) { my ($drink, $amount) = $_.split(' '); next if $drink eq 'Office'; %order{$drink} += $amount; } for %order.kv -> $drink, $qty { "{$drink}: {$qty}".say; }