in reply to Downloading Gmail attachments - Corrupted saved file

A couple of points. If you are running on Windoze you may want to write the files in binary mode (see binmode). Also it looks to me as though you are trying to append the files instead of writing to them. Here's my code that works ok:
foreach my $at ( @attachments ) { if ( $at->{content_type} =~ /pdf/i ) { open(my $fh, '>', $at->{filename} ) || die ( $!); binmode $fh; print $fh $at->{payload}; $fh->close(); } }