constants: you cannot use variables in them. if you want similar
run-time functionality, use C<chr()> and C<charnames::vianame()>.
+Also note that if all the code points for pack "U" are below 0x100,
+bytes will be generated, just like if you were using C<chr()>.
+
+ my $bytes = pack("U*", 0x80, 0xFF);
+
+If you want to force the result to Unicode characters, use the special
+C<"U0"> prefix. It consumes no arguments but forces the result to be
+in Unicode characters, instead of bytes.
+
+ my $chars = pack("U0U*", 0x80, 0xFF);
+
=head2 Handling Unicode
Handling Unicode is for the most part transparent: just use the
If invalid, a C<Malformed UTF-8 character (byte 0x##) in
unpack> is produced. The "U0" means "expect strictly UTF-8
-encoded Unicode". Without that the C<unpack("U*", ...)>
-would accept also data like C<chr(0xFF>).
+encoded Unicode". Without that the C<unpack("U*", ...)>
+would accept also data like C<chr(0xFF>), similarly to the
+C<pack> as we saw earlier.
=item How Do I Convert Binary Data Into a Particular Encoding, Or Vice Versa?