sprintf を使って整形
やってみました。
- sprintf 関数リファレンス -Perl講座 [SMART!]
http://www.rfs.jp/sitebuilder/perl/05/func/sprintf.html
#!/usr/bin/perl
use strict;
use warnings;my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
my $jpwday;if ($wday == 0) {$jpwday = "日";}
elsif ($wday == 1) {$jpwday = "月";}
elsif ($wday == 2) {$jpwday = "火";}
elsif ($wday == 3) {$jpwday = "水";}
elsif ($wday == 4) {$jpwday = "木";}
elsif ($wday == 5) {$jpwday = "金";}
elsif ($wday == 6) {$jpwday = "土";}print sprintf("%d年%02d月%02d日 %s曜日 %02d時%02d分%02d秒\n", $year+1900, $mon+1, $mday, $jpwday, $hour, $min, $sec);
なるほど。
> perl date.pl
2005年10月31日 月曜日 03時20分55秒
- sprintf( "出力内容(%フォーマット文字)" , $変数1,$変数2,...);
- %d は10進数。%02d とやると 4 桁の 10 進数。4 桁ない場合は 0 で埋めてくれる
- %s は文字列
if のところがもっと短くかけないものか。