我尝试了第一个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名称,有没有办法这样做?
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)
第一个寻找这样的问题答案的是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)
| 归档时间: |
|
| 查看次数: |
3857 次 |
| 最近记录: |