http://qs1969.pair.com?node_id=1101725

hesco has asked for the wisdom of the Perl Monks concerning the following question:

I'm getting this error:

# perl test.pl Error parsing time at /usr/lib/perl/5.14/Time/Piece.pm line 469.

where test.pl reads:

#!/usr/bin/env perl use strict; use warnings; use Time::Piece; my $dt = 'Fri, 20 Sep 2024 01:14:03 UTC'; my $format = '%a, %d %b %Y %T %Z'; print Time::Piece->strptime( $dt, $format ); exit;

Fully reading the `man strptime` documentation for the formatting codes has given me no clues as to why this might be. Reading that line number in the underlying Time::Piece module, as well as previous experience tells me that I have an issue where my $format does not match my $dt somehow. But various experiments have failed to stumble across a solution. Can anyone here with experience with this method of Time::Piece please elucidate the path forward?

All clues appreciated, particularly ones which point me to documentation which might help me avoid this frustration in the future.

Thanks,

-- Hugh


UPDATE:

Thank you so much toolic and Wallah. That was the ticket. I tested that after stripping off the time zone from the dates and the format and moved past that error.

And to the Anonymous Monk who pointed out a portable version of these methods: thank you as well, though your solution was not appropriate for this implementation as I am writing a data validation script for a puppet module, for which one of my design criteria has been that I stick to perl core and not introduce any unnecessary additional dependencies which could not reasonably be expected to reside on the target server anyway. Gave me an opportunity to learn about corelist and Module::CoreList, which I had not previously known about.

if( $lal && $lol ) { $life++; }
if( $insurance->rationing() ) { $people->die(); }