Examining 'undefined': The value of 'undefined' is not a reference. The value of 'undefined' is not defined. Examining 'empty_string': The value of 'empty_string' is not a reference. The value of 'empty_string' is defined. The value of 'empty_string' is zero-length. Examining 'non_empty_string': The value of 'non_empty_string' is not a reference. The value of 'non_empty_string' is defined. The value of 'non_empty_string' is 'string'. Examining 'empty_array_ref': The value of 'empty_array_ref' is a reference. The value of 'empty_array_ref' is 'ARRAY(0x7fdcfe8040b0)'. The ref() value of 'empty_array_ref' is 'ARRAY'. Its dereferenced value has no elements. Examining 'non_empty_array_ref': The value of 'non_empty_array_ref' is a reference. The value of 'non_empty_array_ref' is 'ARRAY(0x7fdcfe82bf58)'. The ref() value of 'non_empty_array_ref' is 'ARRAY'. Its dereferenced value has these elements: '1 2 3'. Examining 'empty_hash_ref': The value of 'empty_hash_ref' is a reference. The value of 'empty_hash_ref' is 'HASH(0x7fdcfe82c048)'. The ref() value of 'empty_hash_ref' is 'HASH'. Its dereferenced value has no key-value pairs. Examining 'non_empty_hash_ref': The value of 'non_empty_hash_ref' is a reference. The value of 'non_empty_hash_ref' is 'HASH(0x7fdcfe82c0f0)'. The ref() value of 'non_empty_hash_ref' is 'HASH'. Its dereferenced value has these keys: 'y z x'. Its dereferenced value has these values: '25 26 24'. Examining 'glob_ref': The value of 'glob_ref' is a reference. The value of 'glob_ref' is 'GLOB(0x7fdcfe82c2d0)'. The ref() value of 'glob_ref' is 'GLOB'. A globref can be a filehandle opened for writing. Examining 'code_ref': The value of 'code_ref' is a reference. The value of 'code_ref' is 'CODE(0x7fdcff08c5a0)'. The ref() value of 'code_ref' is 'CODE'. Hello, world! Examining 'ref_ref': The value of 'ref_ref' is a reference. The value of 'ref_ref' is 'REF(0x7fdcfe82c1b0)'. The ref() value of 'ref_ref' is 'REF'. Examining 'dereferenced__ref_ref': The value of 'dereferenced__ref_ref' is a reference. The value of 'dereferenced__ref_ref' is 'SCALAR(0x7fdcff07b598)'. The ref() value of 'dereferenced__ref_ref' is 'SCALAR'. Its dereferenced value is '99'. Examining 'blessed_ref': The value of 'blessed_ref' is a reference. The value of 'blessed_ref' is 'IO::Handle=GLOB(0x7fdcfe82c240)'. The ref() value of 'blessed_ref' is 'IO::Handle'. TODO: Further work on this type is left as an exercise for the reader. Examining 'ref_ref_ref': The value of 'ref_ref_ref' is a reference. The value of 'ref_ref_ref' is 'REF(0x7fdcfe82c480)'. The ref() value of 'ref_ref_ref' is 'REF'. Examining 'dereferenced__ref_ref_ref': The value of 'dereferenced__ref_ref_ref' is a reference. The value of 'dereferenced__ref_ref_ref' is 'REF(0x7fdcfe84b2d0)'. The ref() value of 'dereferenced__ref_ref_ref' is 'REF'. Examining 'dereferenced__dereferenced__ref_ref_ref': The value of 'dereferenced__dereferenced__ref_ref_ref' is a reference. The value of 'dereferenced__dereferenced__ref_ref_ref' is 'SCALAR(0x7fdcfe8441c8)'. The ref() value of 'dereferenced__dereferenced__ref_ref_ref' is 'SCALAR'. Its dereferenced value is '999'. Examining 'regex': The value of 'regex' is a reference. The value of 'regex' is '(?^:match)'. The ref() value of 'regex' is 'Regexp'. TODO: Further work on this type is left as an exercise for the reader. Examining 'vstring': The value of 'vstring' is not a reference. The value of 'vstring' is defined. The value of 'vstring' is 'A'. Examining 'vstring_ref': The value of 'vstring_ref' is a reference. The value of 'vstring_ref' is 'VSTRING(0x7fdcff02e130)'. The ref() value of 'vstring_ref' is 'VSTRING'. TODO: Further work on this type is left as an exercise for the reader.