Perl 5 version 8.0 documentation


  • ref EXPR
  • ref

    Returns a true value if EXPR is a reference, false otherwise. If EXPR is not specified, $_ will be used. The value returned depends on the type of thing the reference is a reference to. Builtin types include:

    1. SCALAR
    2. ARRAY
    3. HASH
    4. CODE
    5. REF
    6. GLOB
    7. LVALUE

    If the referenced object has been blessed into a package, then that package name is returned instead. You can think of ref as a typeof operator.

    1. if (ref($r) eq "HASH") {
    2. print "r is a reference to a hash.\n";
    3. }
    4. unless (ref($r)) {
    5. print "r is not a reference at all.\n";
    6. }
    7. if (UNIVERSAL::isa($r, "HASH")) { # for subclassing
    8. print "r is a reference to something that isa hash.\n";
    9. }

    See also perlref.