情報を配列ではなくハッシュとして保存することをお勧めします。
my %times = (
"stuff" => "00:04",
"more stuff" => "02:59",
"extra stuff" => "00:00",
);
これで、次のように時間を取得できます。
my $stuff_var = "stuff";
print "It took $stuff $time{$stuff} to run\n";
データが配列にある場合は、m//
正規表現を使用して解析できます。
my %times;
for my $time ( @arr ) {
$time =~ /(.*)\s+(.+?)/; # Parentheses mark stuff and time
my $stuff = $1;
my $time = $2;
$time{$stuff} = $time;
}
$time
これで、タイムスタンプを含むハッシュが作成されました。時間と分を分けたい場合は、同じテクニックを使用します。ハッシュのハッシュを作成します:
my %times;
for my $item ( @arr ) {
$itme =~ /(.*)\s+(.+?)/; # Parentheses mark stuff and time
my $stuff = $1;
my $time = $2;
$time{$stuff}->{TIME} = $time;
$time =~ /(.*):(.*)/;
$time{$stuff}->{HOUR} = $1;
$time{$stuff}->{MINUTE} = $2;
}
Now$time{$stuff}->{TIME}
は(HH:MM)
、while$time{$stuff}->{HOUR}
は時間、$time{$stuff}->{MINUTES}
は分になります。