2013-05-29 38 views
3

如何在Perl中查看今天是星期一?如何檢查今天是週一在Perl?

需要安裝哪些模塊?

任何人都可以幫助我一個例子嗎?

+1

請出示一些努力,並告訴我們你已經嘗試哪些地方你的問題是這一點。 – simbabque

回答

6

最簡單的方法是使用localtime。它返回一個值列表。其中第七個是週日,從星期天開始。因此,星期一的值爲1.如果沒有給出參數,則使用當前時間(time),這正是您想要的。

if ((localtime)[6] == 1) { 
    print "Today is Monday!\n"; 
} 

因爲我們只需要指數6(第七回值),我們可以把括號圍繞localtime迫使它到一個列表,並直接從該列表訪問索引。我們可以將該標量值與1進行比較。

localtime是一個內置函數。不需要任何額外的模塊,甚至沒有包含在Perl Core中的模塊。這只是開箱即用。

+1

我已經給出了我的代碼: #!/ usr/bin/perl -w 使用CGI qw(:standard); 使用CGI ::鯉魚qw(warningsToBrowser fatalsToBrowser); 使用嚴格; [%IF(localtime)[6] == 1%] print「今天是星期一!\ n」; [%ELSE%] print「hello」; [%END%] 拋出錯誤[Wed May 29 15:12:44 2013] abc.cgi:全局符號「%IF」需要在abc.cgi第15行顯式包名稱。 >> abc.cgi:syntax error在abc.cgi第15行,接近「%IF(」 >> abc.cgi:全局符號「%ELSE」要求在abc.cgi第18行顯式包名稱。 – Monisha

+2

您正在做的不是Perl代碼,它是Template Toolkit並且不會在'.pl'文件中工作 – simbabque

4

如果您想了解更多「人」(實際上是面向對象的)的方式來從localtime訪問數據,使用Time::Piece的版本localtimeTime::Piece是因爲Perl 5.10核心模塊):

use v5.10; 
use Time::Piece qw(localtime); 

my $t = localtime; 
if ($t->day_of_week == 1) { 
    say 'Today is Monday, too!'; 
} 

你可以還考慮文檔和使用:

$t->wday    # 1 = Sunday 
$t->_wday    # 0 = Sunday 
$t->day_of_week   # 0 = Sunday 
$t->wdayname   # Tue 
$t->day     # same as wdayname 
$t->fullday    # Tuesday 
4

您也可以使用datetime模塊。

use DateTime; 

if (DateTime->today->day_of_week == 1) { 
    print "Today is monday\n" 
} 

如果週一從0開始,你可以使用day_of_week_0

if (DateTime->today->day_of_week_0 == 0) { 
    print "Today is monday\n" 
} 
+1

DateTime不在覈心Perl中,加上它很重。 – Xaerxess

相關問題