Thank you, but I'm still missing a clue. The reason I remain confused is perlop:
The following escape sequences are available in constructs that interpolate, and in transliterations:
Sequence Note Description
\t tab (HT, TAB)
\n newline (NL)
\r return (CR)
\f form feed (FF)
\b backspace (BS)
\a alarm (bell) (BEL)
\e escape (ESC)
\x{263A} 1,8 hex char (example: SMILEY)
\x1b 2,8 restricted range hex char (example: ESC)
\N{name} 3 named Unicode character or character sequence
\N{U+263D} 4,8 Unicode character (example: FIRST QUARTER MOON)
\c[ 5 control char (example: chr(27))
\o{23072} 6,8 octal char (example: SMILEY)
\033 7,8 restricted range octal char (example: ESC)
Should this not be "\n\003\036\025"?
| [reply] |
Well footnote 7 does say:
Some contexts allow 2 or even 1 digit, but any usage without exactly
three digits, the first being a zero, may give unintended results.
(For example, in a regular expression it may be confused with a
backreference; see "Octal escapes" in perlrebackslash.)
So it would be much more clear with the 3 digit representation. But in this particular context, it works out:
use feature 'say';
use Data::Dump qw(dump);
say dump( pack("c*", 10, 3, 30, 21 ) ); # outputs "\n\3\36\25"
say dump( unpack("c*", "\n\3\36\25") ); # outputs (10, 3, 30, 21)
say dump( unpack("c*", "\n\003\036\025") ); # outputs (10, 3, 30, 21)
| [reply] [d/l] |
Ah, that was the necessary clue. Sometimes the perl interpreter is too clever for me. Many thanks.
| [reply] |