さらに短く


#!/usr/bin/perl
use strict;
use warnings;
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday)=localtime();
print sprintf("%d/%02d/%02d %s %02d:%02d:%02d\n",
$year+1900,$mon+1,$mday,sprintf("%s",("Sun","Mon","Tue","Wed","Thu","Fri","Sat")[$wday]),$hour,$min,$sec);
実行

>perl date.pl
2005/10/31 Mon 03:48:51
結果も短く。

  • print sprintf() とやるのはよくない気がしないでもない
  • sprintf("%s", sprintf("%s", hoge)) とやるのはよくない気がしないでもない
  • localtime() の $isdst は削っても大丈夫だった