1、创建一个哈希,键为水果名称,值为它们的常见颜色,然后将每个键/值对作为单独的一行打印出来,格式类似于“香蕉是黄色的”。
以下代码是实现该功能的示例:
use strict;
use warnings;
use diagnostics;
my %color_for = (
bananas => 'yellow',
apples =>'red',
oranges => 'orange',
);
for my $fruit (keys %color_for) {
my $color = $color_for{$fruit};
print "$fruit are $color\n";
}
2、从 @fahrenheit 数组创建 @celsius 数组。
要从 @fahrenheit
数组创建 @celsius
数组,需要将 @fahrenheit
数组中的每个华氏温度值转换为摄氏温度值。转换公式是先减去 32,然后乘以 5/9。可以使用以下代码实现:
my @fahrenheit = ( 0, 32, 65, 80, 212 );
my @celsius = map { ( $_ - 32 ) * 5 / 9 } @fahrenheit;
3、将数字 1 到 10 逐行打印。
在 Perl 中可以使用以下代码实现:
for (my $i = 1; $i <= 10; $i++) {
print $i, "\n";
}
4、计算并打印@numbers数组中数字的平均值。
可以使用以下代码实现:
sub average {
my @numbers = @_;
my $total = 0;
$total += $_ foreach @numbers;
return $total / @numbers;
}
print average(qw< 1 5 18 3 5>);
此代码先定义一个 average
子例程,在子例程中计算总和并除以元素数量得到平均值,最后调用该子例程并打印结果。
5、修复 C 风格 for 循环中的越界错误,并展示使用 Perl 风格 for/foreach 循环的更好方法。
修复 C 风格 for
循环中的越界错误,需将循环终止条件从
$i <= $num_elements
改为
$i < $num_elements
更好的方法是使用 Perl 风格的 for
/ foreach
循环,示例代码如下:
my @array = qw( fee fie foe fum );
for my $word (@array) {
print "$word";
}
这种循环能避免越界错误。
6、编写代码为 %stat_for 哈希中的键分配随机值,键为’strength’、’intelligence’、’dexterity’,随机值为 2 加上两个 1 到 6 的随机整数之和,且随机值不能小于 6,最后输出每个键及其对应的值。
my %stat_for;
my @stats = ('strength', 'intelligence', 'dexterity');
foreach my $stat (@stats) {
my $random = 2 + int(rand(6)) + int(rand(6));
redo if $random < 6;
$stat_for{$stat} = $random;
}
print <<"END_CHARACTER";
Strength: $stat_for{strength}
Intelligence: $stat_for{intelligence}
Dexterity: $stat_for{dexterity}
END_CHARACTER
7、创建一个完整的代码,为 %stat_for 哈希中的键分配随机值,条件是该值至少为 6,并打印结果。
my %stat_for;
my @stats = ('strength', 'intelligence', 'dexterity');
foreach my $stat (@stats) {