Perl - 将localtime的输出存储到哈希中

Wak*_*nka 1 perl hashmap localtime

在perl中,我可以使用以下命令序列获得当前秒数:

my @time = ($sec,$min,$hour,$day,$mon,$year_1900,$wday,$yday,$isdst)=localtime;
print $time[0]
Run Code Online (Sandbox Code Playgroud)

有没有相当于这个,但使用哈希?所以可以输入这样的东西:

print $time{"sec"} 
Run Code Online (Sandbox Code Playgroud)

我试过了:

my %time= ("sec","min","hour","day","mon","year_1900","wday","yday","isdst")=localtime;
print $time{"sec"}
Run Code Online (Sandbox Code Playgroud)

但它以下列错误结束:

Can't modify constant item in list assignment at -e line 1, near "localtime;"
Execution of -e aborted due to compilation errors.
Run Code Online (Sandbox Code Playgroud)

谢谢

Thi*_*Not 7

您可以使用Time::Piece以下方法将其存储在对象中,而不是将所有内容存储在哈希中:

#!/usr/bin/perl

use strict;
use warnings;

use Time::Piece;

my $t = localtime;
print $t->sec;
Run Code Online (Sandbox Code Playgroud)

Time::Piece 可以进行日期数学,比较,解析和输出,使其比简单的哈希更灵活.