WWW::Purolator::TrackingInfo - access Purolator's tracking information
use strict; use warnings; use WWW::Purolator::TrackingInfo; my $t = WWW::Purolator::TrackingInfo->new; my $info = $t->track('320698592781') or die "Error: " . $t->error; if ( $info->{status} eq 'delivered' ) { print "The package has been delivered! YEY!\n"; } else { print "Package's latest update is: $info->{history}[0]{comment}\n"; }
The module accesses www.purolator.com and gets tracking information for the package, using the provided PIN (tracking number, e.g. 320698592781).
my $t = WWW::Purolator::TrackingInfo->new;
Creates and returns a new WWW::Purolator::TrackingInfo object. Does not take any arguments.
WWW::Purolator::TrackingInfo
track
my $info = $t->track('320698592781') or die $t->error;
Instructs the object to obtain tracking information from Purolator using a PIN. Takes one mandatory argument: Purolator's PIN for the package (or "tracking number"; years after dealing with Purolator, I'm still unclear on their terminology). On failure returns undef or an empty list, depending on the context, and the reason for failure will be available via ->error method. On success returns a hashref with the following keys/values (sample abridged data):
undef
->error
{ 'status' => 'delivered' 'pin' => '320698611680', 'history' => [ { 'comment' => 'Shipping label created with reference(s): 2509543', 'location' => 'Purolator', 'scan_time' => '11:09:00', 'scan_date' => '2014-01-16' } ], };
status
'in transit', 'package picked up', 'shipping label created', 'attention', 'delivered',
The status value will be one of the above values, with a possible additional one 'unknown status code', though the unknown code likely would mean this module is broken. The values are self-explanatory, with exception of 'attention', which means some unforseen event has happened with the delivery and the package status requires attention.
'unknown status code'
'attention'
pin
'pin' => '320698611680',
This is the PIN/tracking number that was used to call ->track with.
->track
history
'history' => [ { 'comment' => 'Shipment delivered to MARY at: RECEPTION', 'location' => 'Saskatoon, SK', 'scan_time' => '10:44:00', 'scan_date' => '2014-01-17' }, { 'comment' => 'On vehicle for delivery', 'location' => 'Saskatoon, SK', 'scan_time' => '09:57:00', 'scan_date' => '2014-01-17' }, { 'comment' => 'Arrived at sort facility', 'location' => 'Saskatoon, SK', 'scan_time' => '06:57:00', 'scan_date' => '2014-01-17' }, { 'comment' => 'Picked up by Purolator at CALGARY AB ', 'location' => 'Calgary, AB', 'scan_time' => '15:23:00', 'scan_date' => '2014-01-16' }, { 'comment' => 'Shipping label created with reference(s): 2509543', 'location' => 'Purolator', 'scan_time' => '11:09:00', 'scan_date' => '2014-01-16' } ];
The value is an arrayref of hashrefs. Each hashref specifies a line in package's tracking history, most recent first. Each hashref contains four keys:
scan_date
'scan_date' => '2014-01-17'
The date of this particular update.
scan_time
'scan_time' => '15:23:00',
The time of this particular update.
location
'location' => 'Calgary, AB',
Location of where the update happened.
comment
'comment' => 'Shipping label created with reference(s): 2509543',
The comment/description of the update.
error
$t->track('320698592781') or die $t->error;
Takes no arguments. Returns a human readable reason for why ->track method failed.
'Zoffix, <'zoffix at cpan.org'> (http://haslayout.net/, http://zoffix.com/, http://zofdesign.com/)
<'zoffix at cpan.org'>
Please report any bugs or feature requests to bug-www-purolator-trackinginfo at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=WWW-Purolator-TrackingInfo. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
bug-www-purolator-trackinginfo at rt.cpan.org
You can find documentation for this module with the perldoc command.
perldoc WWW::Purolator::TrackingInfo
You can also look for information at:
RT: CPAN's request tracker LWP::UserAgent->new( agent => 'Opera 9.5', timeout => 30 ) http://rt.cpan.org/NoAuth/Bugs.html?Dist=WWW-Purolator-TrackingInfo
AnnoCPAN: Annotated CPAN documentation
http://annocpan.org/dist/WWW-Purolator-TrackingInfo
CPAN Ratings
http://cpanratings.perl.org/d/WWW-Purolator-TrackingInfo
Search CPAN
http://search.cpan.org/dist/WWW-Purolator-TrackingInfo/
Copyright 2009 'Zoffix, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install WWW::Purolator::TrackingInfo, copy and paste the appropriate command in to your terminal.
cpanm
cpanm WWW::Purolator::TrackingInfo
CPAN shell
perl -MCPAN -e shell install WWW::Purolator::TrackingInfo
For more information on module installation, please visit the detailed CPAN module installation guide.