perl - 使用哈希在 Perl 中编写程序
问题描述
我想在收到用户输入后 2 天打印。
例子:
enter a day :
Input : Wednesday
Output : monday
我尝试使用带有数组的散列但找不到结果。
%hash=('mon',1,'tue',2,'wed',3);
@arr=keys %hash;
解决方案
你的尝试是倒退的。您要搜索的字符串应该是哈希的键。
my @days = qw( mon tue wed );
my %index_of_day = map { $days[$_] => $_, $_ => $_ } 0..$#days;
defined( my $input = <> )
or die("Premature EOF\n");
chomp($input);
my $old_index_of_day = $index_of_day{$input}
or die("Unrecognized day $input\n");
my $new_index_of_day = $old_index_of_day - 2;
$new_index_of_day += @days while $new_index_of_day < 0;
my $output = $days[$new_index_of_day];
推荐阅读
- ios - 集合中嵌套子属性的 NSSet
- laravel - 如何为具有 2 个不同参数的同一规则制作 2 个不同的 Laravel 验证消息?
- postgresql - 无法连接到 RDS PostgeSQL 实例
- lua - 玩家在 Roblox 中的大小
- javascript - 如何知道函数调用了多少次而不在函数外部声明变量
- javascript - 保存javascript函数
- r - 从数据集本身向 ggplot 添加标题
- java - 在类路径中找不到任何 META-INF/persistence.xml 文件,但我已经添加了它
- .net - 如何通过 login.microsoftonline.com 身份验证?
- vb.net - 从转换为字符串的 ListBox 中删除重复项