Perl strings are always written to memory with an additional \0 behind the end of the string, to make passing memory buffers around to C functions easier. If WWW::Curl does not provide a function that takes a string as a Perl scalar (which I would expect), then you can always create the parameters via pack and then pass the results in:
my $passwd_buffer_pointer = pack 'p', $passwd; $curl->option($passwd_buffer_pointer+0);
Of course, you now have the responsibilities that come with dealing with C buffers - especially, you have to find out whether WWW::Curl (or curl) makes a copy of your password or just stores the pointer and expects the memory to be still around when it makes up its mind about accessing it. So likely, you'll have to keep a reference to $passwd alive and never resize it or otherwise change it.
In reply to Re: Converting a string to a C like pointer to a 0-terminated string
by Corion
in thread Converting a string to a C like pointer to a 0-terminated string
by bittis
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |