--- name: unpack status: documented runtime: pp source: src/runtime/pp/strings/pack.rs --- ```{index} single: unpack; Perl built-in (pp runtime) ``` # unpack ## Synopsis ```perl my @vals = unpack("A10", $data); my ($long, $short, $str) = unpack("NnA*", $packet); my @chars = unpack("C*", $bytes); my @vals = unpack("A5", $_); # $_ when string omitted ``` ## Description Extracts values from a binary string according to a template. The inverse of `pack`: takes a TEMPLATE and a binary STRING (or `$_` if omitted) and returns a list of values extracted according to the template format characters. The template syntax is the same as for `pack`, including group syntax `(...)N`, repeat counts, and `*`. String data is decoded using Latin-1 encoding (each byte maps 1:1 to a char code point), which correctly round-trips with `pack`'s output. The `U` format uses character offsets instead of byte offsets. ## See also pack, vec, ord