You'll just die for $address = pack 'L!', pack 'p', $scalar;. That will stuff $address with a pointer to the actual null terminated char[] in the $scalar variable. This is also the point at which it is immensely helpful to read perlguts and sv.h to see how perl actually works. That char[] array can contain null values as data so if you are working with binary data then you'd use $address = pack 'L!', pack 'P', $scalar instead.
That example assumes you can already send that message to the window and just need the char* for the data. If you aren't at *that* point yet then you probably want to check out win32 and see about any message passing modules. If you're using ActiveState perl then apparently some of those modules already come bundled but I've never tried them. If all else fails whip out Inline::C and if *that* fails go to XS where anything is possible.
Update: forgot to put the last paragraph in
In reply to Re: Getting the actuall address of a scalar
by diotalevi
in thread Getting the actual address of a scalar
by jplindstrom
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |