in reply to Inline Encoding Audio::Wav Objects

I am assuming you are running under Windows since you reference "C:/My Documents" in your script.

To save the files in your script, you are going to need to encode them into a text encoding. MIME::Base64 seems to be a good choice; it is widely used and supported, and there are modules readily available to work with them. Just be aware that wav files tend to be fairly large, and will take up a lot of space (relatively speaking).

Use a script something like this to encode the .wav files:

########################################################### use warnings; use strict; use MIME::Base64; my $filename = shift; open my $file, '<', $filename or die $!; my $data; while (sysread($file, $data, 57 * 17)) { print encode_base64($data); } ###########################################################

Feed it a wav filename and redirect the output to a file.

Once you have that, you can use it in something like this.

########################################################### use strict; use warnings; use MIME::Base64; use Win32::Sound; my $sound = decode_base64(homer()); my $player = new Win32::Sound::WaveOut(12000, 8, 1); $player->Load($sound); $player->Write; 1 until $player->Status(); sub homer{ return <<HOMER; UklGRjYbAABXQVZFZm10IBAAAAABAAEA4C4AAOAuAAABAAgAZmFjdAQAAAAFGwAAZGF0YQ +UbAAB/ f35/f35+fH1+fX1/f39/f35+fn5/f39/f4CBgYGCgYKCgoKCgYCBgIB/f39/f35+fn18fn +59fn5+ f39/f39/f4CAgH+AgH+BgYKBgYKCgoOCgoKDhISEhIOEg4KDhISDg4OCg4OCgoKCgoCCgo +GCgYGA gIB/fn5/f3+AgIKBgYKAgYGBgIKCgYGBgICAf4B/gICAgIKCgoKDg4KDhIKChISDg4SDg4 +KCg4KD goKCgoOCgoKCgoOCgoKDgoKCgYCCgoGCgIGAgIGAgYKAgIGAf4CBgYCAgYGAgYB/gYB/gH +9/f39+ fn9/gH5+f3+Af39/f39/f39+fn58fn5/f39+f39+f39/fn+AgH9/gH9/gICBgIGBgICCgH ++BgYGB gYGBgYGCgIGAgICAgICAf4CAgH+AgIB/f4B/gH9/f39/f4CAgICAgYCBgYGAgYGCgYKCgo +KCgoKD goKDg4ODgoODgoOCgoCBgIGCgoKCgoKAgYKCgYGBgoKCgoKDg4OCgoKCg4OCgoKCgoGBgI +CAgICA gICAgYGAf3+BgICAgIB/gIB/f3+Af4CAgH9/gICAgH9/f3+AgICAf39/f35+f39+fn59fX +x9fXx8 fXx9fXx9fXx8fH18fH1+fn+AgIB/goGBgoGDg4ODgoKCg4KDhISDgoKBgoOBgYKDgoODgo +GBgoKC gICBgYCAgICAgICAgYB/f4CBgYGCgoGCgoOCgoKCgoKEg4OEhISFhISEhISCg4ODg4OCgo +KCg4KC gYCBgYOCgoGAgICFhoB6f4KEgH5/g4CAfX1/gYGAf4B/gH59f4B/gH+Af39/f3+Af3+AgI +CAgIGA fn9/gICAf39+f31/fn1+fnx9fn5+fn5/f3+AgICAgYCAgICBgIGAgIGDgoKDgoOEg4SEgo +OEhIWE hIODgoKCgoGAgYGAgYCAgICAf39/f4B+f4B/f35/f35+fn5/fn5+fn5/gYKAeHeOkIB2fY +WFgH+C gIKHhoCChIOAg4SBgoSCf4GCgYGDg4GBg4KCgYGBgoGAf4CBgoB/g4SAg4WAc3+ggGeHio +2EcnuK goGJgoGBgIGAf4KCfn1/gIGDgH+CgIKDgH+AgH9/gH9+fn98fYeAen99f3p3hoR4f4B6f4 +J+fH5/ fX5/fH+AgIKBgYKCgoKCg4SCg4B/g4GBgoOChISCgoCBgoB/fn1+f4B+fn9/gICAgYB/f4 +KAgoKA f316enx+f3+AgYOCgoOFhYeGhIGAhoJ+hIB/fH+Bgn6JhICGkIaAdHRkb4eJl5iOj46RgG ++Wl6iS gFhPn4B/cG97iGB/yIhtf2A/d5fIgIhYX6CHv4h/gJuVoFOfgE+SgFN/YEtndG19hXp3n6 +SQhIxg b5anobeok5+mt4BrgCAveEB/oFd+UH+od9egU3tAP5uSr+jAgHvNkG+4UAc/MBdviGAvb5 +hfv/ig t6BTf9Cwy9awgGBGT3+YQAcQCBc/Z3+AZXeXr/v8/fTAoKeggI+ogHdgDT9oZ3ZAAA8tP2 ++vqJSn oJ////n61KCfooBncEg9QAgXT25gQCAfP2+Pz+DAw8LL9//86NCgen5wQDAiEAoLH1uLgF +Q6P1+P v+vgwLCvy+326NCgZE5QQDI3OjQYDSdfr8qgZFNtf6/b1Mm4gHefx9vYoGAoHCc/VWNsUB +gfW5/n 4JBldXBgf6/jyIBHd7/f2LCQgEAdN19/mGAgH0+P1+CQamhQRVd/1+CgWH+31tS0oIhAFB +8/d5Bo OCs/f7/owIBwYFJLb7/coGRvn8/QtKmgYCAfV3+YgEgwP3+/8tiQdXhgKD+f38BgW5/PxK +u/wIAo Fy9Xf4hoWF9/v+TAcGdoQBk/f8awjp/L4Miwt7BwIA4dP2d/iHhaZ5fP5MCAcGhAIT+fz8 +Ckr87K sJKOgFQwHzdvl4hgS2+f2+SwgH9oMBIvd6+km7vTyKCMlohgNC03S2dqUF+Xz+zIhH+AQB +AfX5+g ha/b2sCnt7iAMBMrR19oSEt/t86wipuUUBgfX42Fl7/d2MCqqaBgNDpLWmt5dGRnf5/OwJ +B5fGhA N1+v1tDAuqyIYFNnenBgX2+EeFhTe6/f4LCAUEAsK09/v+LczLCQeGRbZFhAT3eXmHBcd7 +fe0JBt cEQgGT9/vcfN6/DIiGBQRD5Pb4eTlnBAS3+3sIyfoGAoGz9vj7vd7/DQoGhIMC9PbXuPpJ +BgT2d/ i4GLo5hoTVtzf523x8K0oIp4ZFBVYm1/loBYb5+6pJedkGAgFz9nf6/f8+TAoIRgMC9PY2 +t3j5SA YGePtbiggGBANU93n7/f7+jAkGBAIB8/X3+rv86wgExfj7fIsIBIKBojT3+/7/jowIhIJC +s/X3+f s7CIYFt/u8CkioBQIBQnW3+v3/f00JhwWEA/b4+bp6yIUENfh4qLn6BwQDNLZ3+v3/Ts1L +CASCgr R2d7j6KQaGd3eGx/n6iIaGNnZmt/t8bAuKiIYEg7T21/l6KIZG+PlIiBi5BwQC9Pd4+z0+ +XYsIhk QCw3V3eLo6CIZFJnl73CqIBYQCwrS3+/5/rwwIhIIBcvX5e7xLCAQD1vp7+8sKBwNBoXO3 ++33/fy 0JBUNCg3X4+7wqBkTF9/hIuXpYhQOUNPZ5vP8/jgwJBgJB87W3ebnIqDi4h4d42UgGBTWV +1vl7/X 2dbAoHBIMjdLZ3+KhYqbmIBxf4RoUldve4ObvcW4qKCAYE5SXmdzfH5wbX+ntqKUkIBQMC +9ff6fP 7+jAkGBAMD9ff6egcFRTZ4+3xcCwhFAoGy9vp8/u8NCgYDAhL1t/t7iAUFd/kpOiq7CANC +86PVef 3/nw1LCAMBAnV3WTt7SIcH+AaGt/nIBEQ1NWZ5/X7/DawJhgKCc/X3ePioB/k5SCfZecgF +BCT11n j7vb4NLAoGhAKzdXd3+Dg4WKmaCQhZWQcEhHX3+Pr8/cyKCAaEA3T2t/koBiXm+Hn7aqkI +BgQCg3 b5+/4+/kwIBAICk/a5e7sIBMW3+nsKmmlGQ0IidPf7/n+PDIkFAsHCtXj7O8oHBYb4+SiJ +OcgEAx O1V3n9f1+uSwgEgYFTdff6OkmJCVlIBne4poQDtXc3+v1+/s0LCQYDgvP1dvi5KAbHOLo5 +iPn6SA QDE/W2+Xv+fo0KiIYDAnP1dzi5CIdnWHp7CghIBwVDg7Z5u/1+rgsIBQPDM3V3+npIBQW3 +OXs72w mIBQMCYrX5/P6/LgsGgwHis/Z5/LyJhkX3eXoJSQhGA4LTNPf7/n9fDQoGAoFB8/d6e8oH +BQX3+Z mJSjoGA4N0tff7/t+/TQqIBAFB9Pb5OrpIR3h4hwZX+bgFBBU2Zvj7/b3tDApIBQPD9PY3 +uHhHV/ l6CQgIuYgEhDW3N/l7fP0LSgkHBAP19ufYBoY2+Pr7SooqCAQCAvX3+n1/fowJBgOC8/X4 +ujoIBQ T3unsKCjoGAoGy9Xe6/f//TAiGA4LT9/q7CghGBBT3+ntbSkhFgwKT9/r9Xv8NCQYEA7RV ++PqIhQ T2+PlZufq5BALzc6P3e35/DYwKBwQDNXb3mHmYBoZ3+NlZ+nlGhAMT9Tb5/P6eLQsJBgQD +tbb3t/ gHFye5OhoJCAeGBEOU9/n7/V2MCUYEA2P1t3n6qggGBHT3enzdjAkGhELCQ/f7ff8urIiE +ggFy9f j7fTyKBgPk9/n6imoIBIMCY/f6/X8/bgoGA0JzNPf62/tIBEP2+ChJOrupBAR1BKX5/P5e +LUwJBg MCo9U2d/lIyGhoiAfnt+dGpgZ3Fvf5Ofq7S4sKKQeGJcUl1UT2ePr6idp6BwQCs/Uld7r9 +fUyMCo iGBRXWpodYuIYE9rj6yqrbCgcDgtP19/u9vs4LCEYDQtV3+PhHBQOT9fl7/SyLCASCATN3 +ev2/fw wIBINjdLb5u7sIBKV3+nt7avqIAwIiY3V5fb9/zsyJBQIBU3X3+vwqiIgYBoXXeTgFRIT1 +pbf7vd 5trQwIBQREdQSFdvcnuPp7/AqJiAWDAtO1d7p8/n4tCwiGhALT9Xb3Z5h5+ztKCKgHBQMC +9Lb4+3 3+jYwKCAUDlLWlpfbmhYUm+fv8i4rJRgKBQnT3en2/fwyKCASDA9XXeTmoBge6eilZuvqI +A0P0g4 R5fX5eDUwKBQKC9PUl9/rIhob4+QaG+npGBBV2RQX5fH09LKxKiAUEZVWlljZGp/l5yXp7 +agcFBH TkhVf6/HyMrQwJBsWldUV253cFxni5mRm6+ogFhWX2hvl7vJxsCkkGhKT2dxcGJYSldvm7 +vKwKSI YDgmN2efv+Pq2LCASDg7V3+XkHBIT3eXoJu3yKBQKB83T3e35/LgwJhgNCQ3V3uXkoGCl5 +hwZ4+Y YEBNXFBfj8/s6NjIqIA4M0pXa3+IcGdveHB7l6yIcGJkVE9vn7vKztXIpIBYSENBT1RPX3 ++nqKGv wqBgR0tKRFd/u87P2dzAkHRgSEBLX2VgX3+rsKCgnJB0VEtfd5O319TEqIBgUEVff52khG +A8S2+J m7O/wJBgOCQzX3+/6/zgsIBEIB0/b5+khHePrIhib6eoYEdfUDA/f8fV3+rkwIBAKyolP3 ++el56v wIhUX39YOkd3eGN/r8vMyc3MsIBgUko6P0xOX3eXopyfr6BwSE9fWFd3n77CzdHIqIRyYE +hGVVBL V3+ZoIiXtKBgSVdgUFV/r8LFytPAkHRyYEZJX2RUR1+XrqCWp6CAVEJKX3efz+rgyriUYD +g3U29/ gHBYW29/kpGfs6SASj1LX3+v2+3kyKBwQCk3X3pgV3+nsIh/n8SAQD9WMC9fr9fg5fPgqG +hAOjQ7 X396f5aYiHBvf3pkXmd4cm+Xt87Ew8S0kHBcVFJQRD9fd4mGhZuiiGBVXmBXb5e/08zP1s +CIYlxQ S1dgVFtni5aagI+rkEhLX2BNa5u/3N3a3MBwS0gwM1dkXmBnj7ewgouTgFREPk9vj7ff7u +rgwIhQ MCsvP2eJgHF/l5qEf5+sgGRjaFRLb5+9wsnTzKiAcGRQQk1QQE9vj5CXp8ewgGBjZExTf7 +fLzdfc wJR4ZEg4P1NIO09/qJSHt9igYFtqYEBXj7u6v9PhwJiIdEgoK0dQODdvp6KQl7e0gFRriY +Bnj7ew mJGfmGhmf46AYEhAR2t7j52nsJhgQj9IT3u33+7s5NigYEAwKC9PYFFff6CYgI+/sIBbcn +BET3+7 ur/N0LCAWl5SRVd2YF1vjYBsd5+YdGpveGBnf7vHys7QuJBwYFBES1tQOEdfend/l7+ykH +mHgGRf f6u+t8nJwJiAdGBKQjAYJ09/j5u339CAYGJUOD93r8fP2+ngqIB0UDApP1NQOEd3mIB/n8 +/QsJOr sIBZd39oWW+dppSXr7SggFhAMD9XbXeNq7CAUldkYG+f1+3q3MqwcEAiJyw7X4RwXG+foI +B/v9iw bHuCYDVXj6qnv9vYqIB7eGBAP1JAN1eLdG+PuqCAe5eYgH+fuqSQn6iQcG91bFAwHjdHZ3 ++ty9PA mHBUQjE7X5/P6/f16MiggEggEx8vPz9Vd5+gl6e/wJB7l5h0Z3eGeG5/namcmaewoHBCOU +9iWll/ r7CAY3d0WGer09jX19rAgFpYRCAfM0M4OlufvLC75+jAgHNoSCo/b4+Tr8/ayKicmoBANz +4wJzdX Z3ufy9PIwcbAkHZ2alRITVtla3+Xs7iwkoBzeGBAT3VwUlNrbmBvn8/e3uLk1KCAXEAYER +krMC9X f7e2x93owJBwZlAwN1+HlafL1siwnJiIYEAqLzA0M0d3n6Cbt8vAmJ2rsJCHl6CAYFZeWE +pPW2Vr f5+xqKGgiGBAPj9BT3+31+fp6eDAkGxQNCQlL0ZLS1+PqJqfv9CwiIuaiGJnf5CAd3+XmI +aDj5CA YFRbam9qa32JgGRfb35+j7fV2NDGuKCAUD06MCYrOkNPZ3+nu8nT2ciokHhgVVBTX3eGlZ ++prKyk iHJmYlhMR1t3fXZ/l5iIh5qpqqu1urSgjIR4YEA2ODMoJz9ff42r1+rQuLqwgFpXYlpSW3 ++XlI2b rqyYgHBzeGBXZX90ZGFvcGhnf6e9x9vm4tC0oJBgMBgREA4TJ093l7/v+OTQxKBwUEtXWl +9vl6ag mJ+gkIJ4ZFJTXFRJW3+KeH+vuKCjtbiwoJmjmIBib2hQPDo7S2dud5e/wJiLkoBgV2+Llp ++70cy4 qJmIYEA7QjgkK09raGePv8iwt9fSsJKdpIhgX3VwUEVdc2hcX3WHk5CTn7akgGBnWEA7V2 +53i6/X 5ODUzcCgaFBNOBAPJ0dISm+3yKiny8igiJespJCLn6qQYmt4aEg8R1tvZmd/r6iEh5mIZG +N7kZGf t83MuKakmHBIOTkyIBkvX2xnf8/QsKe/uJh4e4uKeHeXpZB0f4x4YF9sYE1PX21qaX+amZ +Gfraqg o6aooJCLj4RwYGVgSEA7RVdzdouvyLCYmpRwV1lfZ3OHn7/IwL3ArIhsaFhEMCo3VVhUZ5 ++4mp2/ wJiRnaWjoJqmsaCAe4ZwQDU/MCQrS2V3hZ/L0MCxtqCAaGdncXV/l6ukmJqYgGhmbGBQSl +NjZF5n f5SNl62wqKmqqquompWXinBnaGBIRUJBS2Vwd4+ztqCfqJh0aGhkZXN/n7O4s7e0oIh4cm +RIMjdH SkNPd4x4e5ughIWXoJajr7y/vKignIRgU1hAKDNNSE9rj5CJlaCUhoiGgo2dp7fHxLq7sJ +B0alpA KSkzP0BOZ4+UiJezoIuWnZCLm5+qs7iqr7CQdHVwUDg5P0dVWWN/p5SDn7CAd5OUgH+Wm6 +O1sqy1 sJB8f3BIOz88P1NVX3eViH+bqpB7l5qAf5udnaewrLGwkICBdFBBSEE8R11bY3uOhIefoI +SLm5B8 h5eRk5+sqq6qmIqEclRHSkA2RlpaWW+LkYufqKCUm5aKiI+MhpOeoKGpoJGKgGxYU1FIR1 +dkXWN3 hYKDlZmUi4+Qi4qNkJOfpKaoqqCQiIBgTEZDPkNPXmVufYuTk52hoJqXlpCOjo6Mj5ebna +CgkomA dGBYVFBPVF9nbnd/h4+Pk5mclJSUkIuKiYeKj5KTl5SMh4F0aGNgW1tjaW1wd32FiYuVmZ +qVlpSQ jI2Kio6PkZOXlI6JgnZoYFxWV11iaW91e4eNjpOanJSUkoyIh4WDiY2NkZWRioeCeGpiYF +pZXWVr cnN7f4aHi5GVkpOUko6OjoqLjoyJioyEgH14bmhmZGFkZmxxdnZ6f4aHjZaYlpeYkpCOio +WFhIGB hYaCgoF8dnFvbWtqam50eHp/h4uMkZaWlpWUjoqIhYGCgoCChIeEg4OAenZwbmtqa25zeH +h9g4aI io+RkJCPjYqIhIOEhIKDhoaGhIaEgHt3dXNwcHF1d3l7f4KEhomKi42MjIqIhoSDg4SChY +aGh4iI hYOAfHl4dXN1eXl7fX+BgYSHiIqLi4uKioiGhYSDhISDg4KBgH58enh2dXNzdHZ3eHp8fo +KDhYaJ ioqLioiGg4OBgH9/f39/f359fHt5eHh3dnh5enx+f4CDhYaHiYqKiomIh4aFhIOCg4KBgY +KAgH99 fHx7enp7fHx8fX9/f4CDgoOEhYSEhIODg4SDgoOCgYKCg4OCgoGAgICAf39/gIGBgoSDhY +aGhoeI iIiHhoaGhoSEg4OEgoOEgoCBgYCAgICBgIGBgoKBgoKCg4SEg4OCgoKCgoOCgoGBgICAgH +9/f39/ gH+AgH+BgH+BgICAf3+Af4CAf4GAgICAgYGAgH9/f39/f39/f39/f39+fn9+f39/f35+fn +5/fn5+ f39/f35/f4GAgICAgYCBgIKCgoKCgoGCgYGBgIGBgYB/f39/f39/fn1/f39/gIGBgYCBgo +GBgoKC goGBgoKCgoKCgoKDg4KCgoGCgoKCgYGCgoKCgYKCgYCAgYKBgoGAgICAf3+AgIB/gICAgH ++AgICA gICBgICAf4GAgIB/gICAf4GAgYCBgYKBgYGBgoGCgIGBgYGAgYCAgICAgICAf4CAgH+AgY +CAgIB/ f39/gH9/f4CAf4CAgIB/gH9/f39/fn9/f39/gICBgIGCgYGCgoKCg4KCgYKCgoGBgYCAgY +CBgICA gH9/f39+fn1+fn1+fn5+fn9+f39/f4B/gICAgYGBgYKCgoKDg4SEg4OEg4OCgoKCgoKCgo +KBgYKB gICBgoGBgoGCgoKBgoKBgoKDg4ODgoGBgoKCgYKCg4KCg4OCg4KEg4ODgoKCgoKCgoGCgo +GCgoCA gYCBgoGCgoGCgYGCgYCBgIB/f39/fn+Af3+Af4CAgIB/f39/f4CAgIB/f39/f3+AgIGBgI +CAgYGC goGBgYGAgYGCgYGCgYCBgIKCgICAf4CAgH9/f35+fn9/f3+AgH9/f3+Af3+AgH+AgICBgI +CCgoKB gYGBgIGAgICAgIGBgYCAgIGBgICAgIGBgYGAgICAgIGAgICBgICBgYKCgoGCgYKCgoODgo +GBgoGB gIGAgYCAgYCBgIGAgICAgIGAgICAgYCAf39/f39+f4CAgH9/f4B/f39/gH9/f39/f39/f3 +9/fn9/ f39/f39/f3+Af4CBgYCAgH+AgICCgoGCgoOCgoOCgYKCgoOCgoKCgoKCgoGAgIGAgYGAgI +GBgICA gH9/fn9/f3+Af39/f3+Af4B/gH+AgICAgIGBgIGCgoKDgoGCgoKDgoOCgoGCgoGBgoKCgo +KCgoCA gICBgYGBgYKBgoKCgYGCgoKCgoKCgoKCgoKBgoKBgYKCgYGCgoGBgYCBgYGCgoKCgYCBgI +CAgYCA gIGAgICAgICBgIKBgYGCgYGCgIGAgoKBgYCAgICAgH9/gH+BgYCCgoKBgoGBgoKBgYGCgo +CDgoKD goKCgYKCgYCAf4CAgICAf4CAf39/f35+fn9/f39+fn9+fn9/fn9/f4B/gIB+f3+Af39/gI +CBgYGB gYCBgYGBgYGBgoKCgoKCg4KBgoGBgoGBgYGAgYGAgIGBgoGBgYCAgYGBgYCBgoGCgoKCgo +GBgoKB gYGBgICAgYGAgICAgH9/f4B/f39/fn9/f3+AgH9/f4B/f4B/fn5+fn58fX5/fX19fn1+fn +5+f39/ fn9+f3+AgIB/gICBgYGCgoKBgoKCgoODg4ODgoGCgoGBgYGBgIB/gH9/gICAf39/gH9/fn +5+fn5+ fn+Af4B/f39/gICAgYGDgoKCgoKCgoGCgoODg4KDg4SEg4ODg4OCg4SDg4SDgoKCgoKCgo +GBgoKB gYGBgYCBgYGBgICAgICBgYGBAAA= HOMER } ###########################################################

You may be better off storing the wavs in a separate module. Just call/load them as necessary.

Replies are listed 'Best First'.
Re^2: Inline Encoding Audio::Wav Objects
by NateTut (Deacon) on Jun 28, 2005 at 23:05 UTC
    Thanks! I'll give that a shot.