use Modern::Perl; use Term::ANSIColor; no warnings 'redefine'; my @plugins = ( 'ReadLineHistory', # history saved across sessions 'Colors', # colorize return value and errors 'Refresh', # refresh before every eval 'Interrupt', # improve handling of ^C 'OutputCache', # access previous results 'Nopaste', # paste session with #nopaste 'DDS', # format output with Data::Dumper::Concise 'PPI', # PPI dumping of Perl code 'MultiLine::PPI', # allow multiple lines 'Completion', 'CompletionDriver::Keywords', # substr, while, etc 'CompletionDriver::LexEnv', # current environment 'CompletionDriver::Globals', # global variables 'CompletionDriver::INC', # loading new modules 'CompletionDriver::Methods', # class method completion 'CompletionDriver::Turtles', # turtle command completion ); $_REPL->load_plugin($_) for @plugins; $_REPL->normal_color('blue'); $Devel::REPL::Plugin::Packages::PKG_SAVE = 'main'; { use lib './lib'; my ($username, $password, $contract_id, $customer_number); $username ||= $ENV{'CANADA_POST_USERNAME'}; $password ||= $ENV{'CANADA_POST_PASSWORD'}; $contract_id ||= $ENV{'CANADA_POST_CONTRACT_ID'}; $customer_number ||= $ENV{'CANADA_POST_CUSTOMER_NUMBER'}; use Shipment::CanadaPost; use Shipment::Address; use Shipment::Package; my $from = Shipment::Address->new( name => 'Andrew Baerg', company => 'Foo Bar', address1 => '67 Coventry View NE #14', city => 'Calgary', province => 'Alberta', country => 'Canada', postal_code => 'T2A6T8', phone => '14032261851', ); my $to = Shipment::Address->new( name => 'Foo Bar', company => 'Com\'pany', address1 => '123 Any Street NW', address2 => '#2', city => 'Los Angeles', province => 'CA', country => 'US', postal_code => '90210', phone => '(403)669-8017 x123', email => 'baerg@yoursole.com', ); my @packages = ( Shipment::Package->new( weight => 4.4, length => 12, width => 12, height => 2, items => [ { quantity => 5, customs_description => 'Footbeds', customs_value => 40, weight => 0.4, origin_country => 'KR', }, ], ), ); my $shipment = Shipment::CanadaPost->new( username => $username, password => $password, customer_number => $customer_number, contract_id => $contract_id, from_address => $from, to_address => $to, packages => \@packages, printer_type => 'thermal', references => [ 'foo', undef, 'bar' ], ); } END { print "\n"; }