use POSIX qw(locale_h strftime); # arturo's fix use locale; # not necessarily needed in *this* case # locale_h above and the setlocale() calls below # are only needed in normal circumstances if you # want to work outside of your machine's default # locale. for $locale (qw{ en fr de }) { setlocale(LC_TIME, $locale); for (0..11) { print "Locale $locale\n---------\n"; # strftime is now localized to $locale print strftime("%B", 0, 0, 0, 1, $_, 96); print "\n"; } }