diff --git a/reference/misc/functions/unpack.xml b/reference/misc/functions/unpack.xml
index e068af41dd..a2729cf485 100644
--- a/reference/misc/functions/unpack.xml
+++ b/reference/misc/functions/unpack.xml
@@ -18,10 +18,11 @@
format.
- unpack works slightly different from Perl as
- the unpacked data is stored in an associative array. To
+ The unpacked data is stored in an associative array. To
accomplish this you have to name the different format codes and
- separate them by a slash /.
+ separate them by a slash /. If a repeater argument is present,
+ then each of the array keys will have a sequence number behind
+ the given name.
@@ -65,17 +66,35 @@
]]>
- The resulting array will contain the entries "chars1",
- "chars2" and "int".
+ The resulting array will contain the entries "chars" with value
+ 4 and "int" with 160.
-
+
+
+
+ unpack example with a repeater
+
+
+ ]]>
+
+
+ The resulting array will contain the entries "chars1",
+ "chars2" and "int".
+
+
+
+
&reftitle.notes;
@@ -87,6 +106,34 @@ $array = unpack("c2chars/nint", $binarydata);
even though unsigned unpacking was specified.
+
+
+ Be aware that if you do not name an element, an empty string is used.
+ If you do not name more than one element, this means
+ that some data is overwritten as the keys are the same such as in:
+
+
+
+ unpack example with unnamed keys
+
+
+]]>
+
+
+ The resulting array will contain the entries "1" with value
+ 160 and "2" with 66. The
+ first value from the c specifier is
+ overwritten by the first value from the n
+ specifier.
+
+
+
+