In response to your update:
You will need
Crypt::SSLeay for https traffic. See the section on PKCS12 support.
Updated example:
use strict;
use warnings;
use WWW::Mechanize;
use Crypt::SSLeay;
$ENV{HTTPS_PKCS12_FILE} = 'certs/pkcs12.pkcs12';
$ENV{HTTPS_PKCS12_PASSWORD} = 'PKCS12_PASSWORD';
my $mech = WWW::Mechanize->new;
$mech->credentials('user', 'pass');
my $response = $mech->get('https://foo.com');
die $response->status_line unless $response->is_success;
printf "content-type: %s\n", $response->header('Content-Type');
my $data = $response->content;