summaryrefslogtreecommitdiff
path: root/pod/perlguts.pod
diff options
context:
space:
mode:
Diffstat (limited to 'pod/perlguts.pod')
-rw-r--r--pod/perlguts.pod12
1 files changed, 9 insertions, 3 deletions
diff --git a/pod/perlguts.pod b/pod/perlguts.pod
index 3f3639667b..c397142b08 100644
--- a/pod/perlguts.pod
+++ b/pod/perlguts.pod
@@ -655,7 +655,8 @@ To create a mortal variable, use the functions:
SV* sv_mortalcopy(SV*)
The first call creates a mortal SV, the second converts an existing SV to
-a mortal SV, the third creates a mortal copy of an existing SV.
+a mortal SV, the third creates a mortal copy of an existing SV (possibly
+destroying it in the process).
The mortal routines are not just for SVs -- AVs and HVs can be made mortal
by passing their address (and casting them to C<SV*>) to the C<sv_2mortal> or
@@ -848,6 +849,7 @@ The current kinds of Magic Virtual Tables are:
i vtbl_isaelem @ISA array element
L 0 (but sets RMAGICAL) Perl Module/Debugger???
l vtbl_dbline Debugger?
+ o vtbl_collxfrm Locale Collation
P vtbl_pack Tied Array or Hash
p vtbl_packelem Tied Array or Hash element
q vtbl_packelem Tied Scalar or Handle
@@ -2051,7 +2053,7 @@ Adds magic to an SV.
=item sv_mortalcopy
Creates a new SV which is a copy of the original SV. The new SV is marked
-as mortal.
+as mortal. The old SV may become invalid if it was marked as a temporary.
SV* sv_mortalcopy _((SV* oldsv));
@@ -2310,10 +2312,14 @@ Note that C<sv_setref_pv> copies the pointer while this copies the string.
=item sv_setsv
Copies the contents of the source SV C<ssv> into the destination SV C<dsv>.
-The source SV may be destroyed if it is mortal.
+The source SV may be destroyed if it is mortal or temporary.
void sv_setsv _((SV* dsv, SV* ssv));
+=item SvSetSV
+
+A wrapper around C<sv_setsv>. Safe even if C<dst==ssv>.
+
=item SvSTASH
Returns the stash of the SV.