Perl Monk, Perl Meditation | |
PerlMonks |
Re: Calling PERL from C code - How to "build" a hash on the PERL stack before calling the function?by ikegami (Patriarch) |
on Jul 08, 2014 at 05:36 UTC ( [id://1092675]=note: print w/replies, xml ) | Need Help?? |
Perl subs take a list of scalars for argument. You cannot pass a hash to a Perl sub as an argument. You may pass a reference
or you may pass the values needed to be build a hash
but you cannot pass a hash. You probably want the former, as the latter is quite inefficient. The sub expects a single scalar, so it probably expects a reference to a hash.
If you want both the RV and the HV to outlive the sub call, you'd use XPUSHs(rv). You'd also need to ensure the RV is freed later. If you want the HV (but not the RV) to outlive the sub call, you'd use newRV_inc. You'd also need to ensure the HV is freed later. Note that the name of the language is Perl (not PERL). It's not an acronym.
In Section
Seekers of Perl Wisdom
|
|