in reply to Store image in string

You can't do that like that. Most image file formats are binary files with a particular structure that can't be directly represented in Perl. It is possible however to encode images files using base64 or similar schemes and decode back to an internal binary form for use as a binary image file:

use strict; use warnings; use MIME::Base64 qw(); my $image64 = <<IMAGE64; R0lGODlhQQA8APcAAAAAAAAAMwAAZgAAmQAAzAAA/wArAAArMwArZgArmQArzAAr/wBVAA +BVMwBV ZgBVmQBVzABV/wCAAACAMwCAZgCAmQCAzACA/wCqAACqMwCqZgCqmQCqzACq/wDVAADVMw +DVZgDV mQDVzADV/wD/AAD/MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMrADMrMzMrZj +MrmTMr zDMr/zNVADNVMzNVZjNVmTNVzDNV/zOAADOAMzOAZjOAmTOAzDOA/zOqADOqMzOqZjOqmT +OqzDOq /zPVADPVMzPVZjPVmTPVzDPV/zP/ADP/MzP/ZjP/mTP/zDP//2YAAGYAM2YAZmYAmWYAzG +YA/2Yr AGYrM2YrZmYrmWYrzGYr/2ZVAGZVM2ZVZmZVmWZVzGZV/2aAAGaAM2aAZmaAmWaAzGaA/2 +aqAGaq M2aqZmaqmWaqzGaq/2bVAGbVM2bVZmbVmWbVzGbV/2b/AGb/M2b/Zmb/mWb/zGb//5kAAJ +kAM5kA ZpkAmZkAzJkA/5krAJkrM5krZpkrmZkrzJkr/5lVAJlVM5lVZplVmZlVzJlV/5mAAJmAM5 +mAZpmA mZmAzJmA/5mqAJmqM5mqZpmqmZmqzJmq/5nVAJnVM5nVZpnVmZnVzJnV/5n/AJn/M5n/Zp +n/mZn/ zJn//8wAAMwAM8wAZswAmcwAzMwA/8wrAMwrM8wrZswrmcwrzMwr/8xVAMxVM8xVZsxVmc +xVzMxV /8yAAMyAM8yAZsyAmcyAzMyA/8yqAMyqM8yqZsyqmcyqzMyq/8zVAMzVM8zVZszVmczVzM +zV/8z/ AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8Amf8AzP8A//8rAP8rM/8rZv8rmf8rzP8r// +9VAP9V M/9VZv9Vmf9VzP9V//+AAP+AM/+AZv+Amf+AzP+A//+qAP+qM/+qZv+qmf+qzP+q///VAP +/VM//V Zv/Vmf/VzP/V////AP//M///Zv//mf//zP///wAAAAAAAAAAAAAAACH5BAEAAPwALAAAAA +BBADwA AAj/AA8AABDjwAoDAA7GIBgAxsIYCw3eiKGiYAyHCiEegEjQIkeIMQyo2Nixo8CHA0dqgT +hSTMeJ Gy82vBjjxsEwGkE6zLkwzEuQMQLcCNMwgIGDKwAcGDkwpkiBMJYudTiyJsgAQGOsuKFi4s +edQA2I 6br1wJaoIAFEdbj0IoCiBN/C8Nr2KMEDOGN69IrDaladfSV1DQux6A2hC8XAiHtj54qHIb +cO3RIT LMStf29shAkxb9aKBGFsXbE4wECUOS1fhjgU5NAbE2+I8es1Rt8YYrzWtqhZY1y8BeNa7V +gwjAGI BnYTFxNmy+wYW6DjiD4RZ+e/xit+PP5ReEcYimdv/42e1WsYHLNjz85tlb3V235x60wLOQ +bO41Wx WjZwu28YGXyBZF1NYawnn4Dm/WUVdxzZVV8YMe1mH0TP2cccbjf4J4NtYcg2FA7WyYBTAD +hUFx9I xxl0AHcATKTagB7KZqFsudUYAxoF4ubcgTiJgcNOvf0lnIM1PeYUbrOhR+EWHm4hiRjMcY +Ekh+h9 uJ6HE0LEJHJATaRCR8cpFQZOYaxQYmew5VYlIzeImGGBOIrBpJw52lhgeuexFoB1E5G20V +EKxocT Ixsy0uMNXNAIpaI1+pibc4dCOduA8rUYHRqPVeVihFqqN1SjuUly56jMicEmnI5atSWTAP +6Fl3UH 7P+EFVA4tXmhh8zhIImIpS5aKhqSFijshZPYBx+lMSyyoYsrxMoaZriJKh2pUD4JJbDYSu +qrGE8+ GWdtN2xZE3cM+jUpRJKABOIk/9UIp7XAhvHkMGJkW++9n5YarrpApZcReDTlxueFpGbCSJ +ySYHKv t5LEK0YmzFkL5XliNEIjGuLuBl+FEwHInAw1ooEGo5OgwUgakjQ8CcSSTCJJJhKLfG+pHd +a0o4w0 0WSZjHI+DCUjII7ByJMKd8vtJCi/3HAmaLhcr8Te+khxllbpBSSZBNYo250Lo0EvGpKkMb +TLmYwh idBMA8vty9oWuLVtz/XI1gEci8jhldzK1rDZ9ab/4XIaYKcxzMoNh90yxNc2DCyIV0IEn2 +32ETQx hc3hmkkYY6hdtCSMwDxJySmnnMngYoC+8M++Hks1TbGxZqyPjDC3db0mmwx4JpNgUvLnfi +PdssoN 3+two1jedkNH1uWIIalPpgHzwYB3/rnnYGeiu8oQo2Ewy2Jgksad8q0Hg/H9IinbnE+iB2 +/pQ3dP eL2fDw4zxDA30vTMjAqMoesgQTmXf0iaWKmAlwnAfS5lzltZJjxHNpSRzWgmuwGOkDQ88r +AublCq yaeAlYajAW8Sw1jg71bWOeq1DGzXUtvRTCUj67iHUq3pi6TgJYlhqEwMw9De58iGO9257I +e7Y9oP /4V3pxscTGo1iRtstvAfYRXIWndCgwObBrYS4m4YIVTg9ObXPimmLFjAGoawDpSZGLAJPR +PzVvsK 90PPhfCKuFvZ9cTmQEmpbXEFKhb/GpOgR9FMhQs8WtNQJkKX9eKKuvNa015WsmzFaXK5eQ +1mnrOl cBHPjswpWelE17Lpaa+GhNvhJ0tGr2vVKwyIK9CG3IMuntFoWFGsVu6ACDMdajGEi/whCn +f5JHZJ 6kcgypJXWEUmNMYLhVHDndfimLIsttFzLSud01DlNtlVqDyuk1NrFCbADubyd0pjJiMZCb +q0mTJX 1ZzOk1qnKjPCZjr34hoygQW66U1Pd7hjpMyadv9EnzmqR+DDmhFdE4ZEbQE9d8ykyA4Itg +fW04ah lEQv0NAIhZnuVxhyk+Mek5lqDutXpQsDFUv4MOkJUZ+1DBu37HieHIWBTSBBQ3xMRKMASn +BmYdid 4Vam05X5rGUnm8TMTjmxYC5qSzBcQY/SQyMaGbOX1xPZwf6WMsIZsKHB4yaNKnkgr7DHIf +7pkEEZ 1yvEmfJwnZtiLwsnhswFLwzezFUMPOaXvljmRTKEzfqahjtuoQx+gfNnybJXLQFWq2a54Y +JDkMU/ AWUwUWQFqV/X9lcsioxzRntYS/0Hz2wWpFlW8WrW7MMoYSF0fTccago1mdNFico914TI+D +jKJ8f/ 2cdjn8pQYSdxg+AxrHYo2+dKtZaoxGIsQ5lB3ni0ZJtwgahEhsKR+tDAhXNq67pFLFVG+e +UaBqFl I9Rx3Za4sNRX3lGFIsWWwx4pKfPU6jKNCQpbOMoTx+ImTmpDVa/kJYbvDVdtr3whhRDVmo +KooC8V QQtjWQOi/4QrRjQTXq+Cpd13MqlHiTqRX1KkggI5RELYWSWUSqTdRulXt0+aUAZhEz4QR0 +YitCGt ijuUnhi89mcechvEAiojnLnUR4SZyV1UcxbmQs6+WzuPbID2KJkCayi8SqKGFQQT0CQlZ3 +oBkVla R7eJoAFATCxxqcRVYwWNqTPc0U5FjmOA4+injDYwaM5sUqxdY9WJxknUV49Yk6P9PAY2My +FJUEiz Gqrtpja6GrDb5FOrCpWoTDCqCXEW8meCHEUkOWHQpAM1oB3lCFFdtSBIDtCntCgGOQopSk +hYsmqH gAU8QKKQhieiP/4tekyPmYtrjFKfkSzmInoBLZj2wqTYkAc20ApteSy4kY1UhSYHMU1kCB +IQADs= IMAGE64 open my $gifOut, '>', "image.gif" or die "Can't create image file: $!\ +n"; binmode $gifOut; print $gifOut MIME::Base64::decode ($image64); close $gifOut;
True laziness is hard work