2014-01-27 24 views
0

我即将做这样的事情:如何在Perl中声明一个数组的子集?

my ($sec,$min,$hour,$day,$mon,$year,$wday,$yday,$isdst) = localtime(time); 

但我并不需要所有这些变量(只分钟,$小时,$星期一,$年被通缉)。

是否有一个简单的解决方案来声明perl中只有必填字段?

一个简单的解决方案,我是这样的,但它不是真的“性感”:

my @day = localtime(time); 
my $min = $day[1]; 
my $hour = $day[2]; 
my $day = $day[3]; 
... 

预先感谢您的任何一个谁可能是能够给我一些想法:)

+0

值得注意的是,您可以从拨打电话到本地时间失去“时间”。如果'localtime'没有收到任何参数,那么它使用当前时间。另外,看看POSIX.pm的'strftime'函数。 –

回答

7

您可以指定要使用slices其中数组的元素。

my ($min,$hour,$mon,$year) = (localtime(time))[1,2,4,5]; 
+0

谢谢,这正是我正在寻找的! – gr0bz

4

好, “性感”是有点主观的,但我认为这是你的意思:

my (undef,$min,$hour,undef,$mon,$year) = localtime(time); 
+0

这绝对是一个“性感”的答案:)谢谢! – gr0bz

相关问题