$ perl cal1.pl months are January February March April May June July August September October November December mon is 11 yr is 2014 month are ARRAY(0x1064440) ARRAY(0xff0ee0) ARRAY(0xff1a38) ARRAY(0xff1d08) ARRAY(0xf7f2d8) ARRAY(0xf7f380) November 2014 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 $ cat cal1.pl #!/usr/bin/perl -w use strict; use Calendar::Simple; use 5.01; my @months = qw(January February March April May June July August September October November December); say "months are @months"; my $mon = shift || (localtime)[4] + 1; my $yr = shift || (localtime)[5] + 1900; say "mon is $mon"; say "yr is $yr"; my @month = calendar($mon, $yr); say "month are @month"; print "\n$months[$mon -1] $yr\n\n"; print "Su Mo Tu We Th Fr Sa\n"; foreach (@month) { print map { $_ ? sprintf "%2d ", $_ : ' ' } @$_; print "\n"; } $