use LWP::UserAgent; use YAML; my $ua = LWP::UserAgent->new; my $ah = HTTP::Headers->new; $ah->header('Accept' => 'yaml'); //required by puppet my $req = HTTP::Request->new('GET', 'https://localhost:8140/production/file_content/test/afile.jpg', $ah); my $res = $ua->request($req); if(!$res->is_success) { die "Something went wrong: $res->status_line" } else { my @a = YAML::Load($res->content."\n"); //puppet seems to forget adding that trailing newline open(HM, '>hm.jpg'); binmode HM; print HM $a[0]->{content}; }