diotalevi has asked for the wisdom of the Perl Monks concerning the following question:
I read perlfunc and all it has to say on the subject is:
'p' A pointer to a null-terminated string.
'P' A pointer to a structure (fixed-length string).
I tried using this to read the contents of a reference but all I get is fatal exceptions. How is this used in practice?
Sample code:
use B 'svref_2object'; $rv = \"hello kitty"; $rv_obj = svref_2object( $rv ); $rv_address = B::address( $rv_obj ); $sv_any = unpack 'P4', $rv_address; # It fails here $rv_address += 4; $sv_refcnt = unpack 'P4', $rv_address; # or here if I just increment t +he address $rv_address += 4; $sv_flags = unpack 'P4', $rv_address; # or anywhere I try using unpack + 'P' printf "%08x\n%08x\n%08x\n", $sv_refcnt;
So what do I have to do to get P to work? I'd like to be able to do some runtime magic but this has me stymied.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Using pack with P and p?
by sauoq (Abbot) on Sep 23, 2002 at 22:23 UTC | |
by diotalevi (Canon) on Sep 24, 2002 at 00:56 UTC | |
|
Re: Using pack with P and p?
by diotalevi (Canon) on Sep 23, 2002 at 21:45 UTC |