Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

syntax of Data::Dump

by WoodyWeaver (Monk)
on Nov 05, 2014 at 20:50 UTC ( [id://1106250]=perlquestion: print w/replies, xml ) Need Help??

WoodyWeaver has asked for the wisdom of the Perl Monks concerning the following question:

using Data::Dump qw(dump) a field inside of a dumped variable reads


I think this is four characters, and the \36 for example refers to the ascii character chr(30)? (This is supposed to be an octet stream corresponding to an IP address of

I don't understand the \36 notation. Can someone provide a clue?

Replies are listed 'Best First'.
Re: syntax of Data::Dump
by Loops (Curate) on Nov 05, 2014 at 20:54 UTC
    Yes, it's 4 binary bytes in octal notation. Can read it as 8 * first digit + second digit. the leading \n is a newline character, which is ASCII 10 (octal 12).
    use Data::Dump qw(dump); print dump( pack("c*", 10, 3, 30, 21 ) ); # outputs: "\n\3\36\25"

    Okay, that "\n" isn't octal notation obviously, it's the Perl string escape code.

      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"?

        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)
Re: syntax of Data::Dump (perlquote oct octal escape perlrebackslash)
by Anonymous Monk on Nov 06, 2014 at 01:36 UTC

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://1106250]
Approved by toolic
Front-paged by boftx
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (2)
As of 2024-06-22 16:13 GMT
Find Nodes?
    Voting Booth?

    No recent polls found

    erzuuli‥ 🛈The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.