perl中localtime`time`的用途是什么?

Ant*_*t's 2 perl

我尝试了第一个perl程序,如下所示:

print "My First Perl Program!\n";
$name ="Anto Aravinth";
print "Hello $name your age now is ";
$byear = 1991;
my($se,$min,$hour,$mday,$mon,$year,$wday,$yday) = localtime time;
$age=($year+1900)-$byear;
print $age;
Run Code Online (Sandbox Code Playgroud)

产生输出:

My First Perl Program!
Hello Anto Aravinth your age now is 20
Run Code Online (Sandbox Code Playgroud)

我理解逻辑,但有一些疑问.在这一行中,my($se,$min,$hour,$mday,$mon,$year,$wday,$yday) = localtime time;我知道它将当前时区值返回到9个不同的变量.现在我想知道time这一行是什么,因为没有time我也得到了输出.那么是否需要插入time

而且我希望year 直接获取所有这些9名称,有没有办法这样做?

Mat*_*Mat 7

time返回当前时间,以系统的纪元以来的秒数计算.(通常:1970-01-01 00:00 UTC,但请参阅文档以获取例外情况).

localtime 花费以该格式表示的时间,并返回与(在当前时区)对应的日期的人类可理解的部分.

如果你不参与localtime,

"localtime()"使用当前时间(由时间(3)返回).

所以你可以time在你的情况下省略那个表达式.

如果你只关心这一年,你可以这样做:

my $se = (localtime)[5];
Run Code Online (Sandbox Code Playgroud)

虽然我更喜欢更明确:

my $se = (localtime(time()))[5];
Run Code Online (Sandbox Code Playgroud)

  • 1970年,1977年.朋友之间有2.21亿秒? (2认同)

Dav*_*oss 7

第一个寻找这样的问题答案的是Perl文档.localtime文档包含第一个问题的答案.

如果省略EXPR,则localtime()使用当前时间(由time(3)返回).

其他人已经给出了一种从本地时间获得一年的方法(使用列表切片),但是文档提到了Time :: localtime模块,它提供了不同的方法.

#!/usr/bin/perl

use strict;
use warnings;
use 5.010;

use Time::localtime;

say 'The year is ', localtime->year + 1900;
Run Code Online (Sandbox Code Playgroud)