summaryrefslogtreecommitdiff
path: root/mg.c
diff options
context:
space:
mode:
authorDave Mitchell <davem@fdisolutions.com>2004-07-31 16:21:50 +0000
committerDave Mitchell <davem@fdisolutions.com>2004-07-31 16:21:50 +0000
commit166f8a29442475f7fe0e9216f957512a793bc4ed (patch)
tree8e8ad9e187566d63a5ce23b4a3f7591a036f3d69 /mg.c
parentd75b63cf816cfa51767ad10e3bdb7a0c01242457 (diff)
downloadperl-166f8a29442475f7fe0e9216f957512a793bc4ed.tar.gz
Add comment to the top of most .c files explaining their purpose
p4raw-id: //depot/perl@23176
Diffstat (limited to 'mg.c')
-rw-r--r--mg.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/mg.c b/mg.c
index 0feb7daf8c..ec9817fd5e 100644
--- a/mg.c
+++ b/mg.c
@@ -15,6 +15,24 @@
/*
=head1 Magical Functions
+
+"Magic" is special data attached to SV structures in order to give them
+"magical" properties. When any Perl code tries to read from, or assign to,
+an SV marked as magical, it calls the 'get' or 'set' function associated
+with that SV's magic. A get is called prior to reading an SV, in order to
+give it a chance to update its interval value (get on $. writes the line
+number of the last read filehandle into to the SV's IV slot), while
+set is called after an SV has been written to, in order to allow it to make
+use of it's changed value (set on $/ copies the SV's new value to the
+PL_rs global variable).
+
+Magic is implemented as a linked list of MAGIC structures attached to the
+SV. Each MAGIC struct holds the type of the magic, a pointer to an array
+of functions that implement the get(), set(), length() etc functions,
+plus space for some flags and pointers. For example, a tied variable has
+a MAGIC structure that contains a pointer to the object associated with the
+tie.
+
*/
#include "EXTERN.h"