Глянул в сторону LWP
use LWP::UserAgent;
$agent = LWP::UserAgent -> new();
my $resp = $agent -> post("http://localhost/file.php",
       { 'field' => 'value' });
print $content = $resp -> content;
Я так понимаю, что здесь где-то надо добавить 
multypart?
Размер файла до 1мб максимум
Метод Get или Post - не принципиально (но желательно разобраться как сделать с обоими)
Пойду гляну документацию по LWP
Добавлено через 42 минуты и 56 секунд:Глянул документацию. Голова кругом 

Написать смог только такое, но не работает. Наверное, неправильно написал  

use LWP::UserAgent;
my $file = 'c:\img.jpg';
$ua = LWP::UserAgent -> new();
my $resp = $ua -> post("http://localhost/test/file.php",
                  Content_Type => 'multipart/form-data',
                  Content => [ init => ["$file"],
                  ]);
print $content = $resp -> content;
Буду думать дальше.
Добавлено через 17 минут и 48 секунд:Было найдено следующее решение
use strict;
use WWW::Mechanize;
my $file = 'c:\img.jpg';
my $agent = WWW::Mechanize -> new();
$agent -> get('http://localhost/file.php');
$agent -> submit_form(
                form_number => 1,
                fields => {img => $file},
);
print $agent -> content;
Блин, что мешало сразу так сделать? 
 
  
 
Но все-таки хотелось бы и с LWP разобраться