in reply to Re: Converting 24 hour time back into 12 hour
in thread Converting 24 hour time back into 12 hour

Here is a working example of the strftime method mentioned
use POSIX; use POSIX qw(strftime); my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) = lo +caltime(time); print print POSIX::strftime('%I:%M:%S %p - %a, %B %d, %Y',$sec, $min, +$hour, $wday, $mon, $year, $mday); # 10:12:47 AM Mon, August 01, 2016

Replies are listed 'Best First'.
Re^3: Converting 24 hour time back into 12 hour
by hippo (Archbishop) on Aug 02, 2016 at 08:43 UTC

    Thanks for this illustration. I have some small suggestions, however.

    • There is no need to "use" a module multiple times within the same scope.
    • When you have imported a symbol into the current namespace there is no need to use the package name to refer to it.
    • There is no need to declare variables which are not used ($wday, $yday, $isdst). If the others aren't used beyond the print statement, we don't need those either.
    • print print is rather pointless since the first print just outputs the return value of the second.

    Cleaning this up gives us:

    use POSIX 'strftime'; print strftime ('%I:%M:%S %p - %a, %B %d, %Y', localtime (time)) . "\n +";

    I prefer the brevity of this and think it aids clarity. However, here's the same but with 2 named variables just for completeness:

    use POSIX 'strftime'; my $format = '%I:%M:%S %p - %a, %B %d, %Y' . "\n"; my @time = localtime (time); print strftime ($format, @time);