On Thu, 2005-11-24 at 11:18 -0600, The Ghost wrote: > Is there a way I can know if a variable ($hash{someKey}) is an array > or an arrayref or hashref or scalar? > I could use eval, but I thought I remember there was some other > function for doing this.
>From the third edition of "Programming Perl" (http://www.unix.org.ua/orelly/perl/prog3/ch29_02.htm): > ref EXPR > ref > The ref operator returns a true value if EXPR is a reference, false > otherwise. The value returned depends on the type of thing the > reference refers to. Built-in types include: > SCALAR > ARRAY > HASH > CODE > GLOB > REF > LVALUE > IO::Handle > 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. > if (ref($r) eq "HASH") { > print "r is a reference to a hash.\n"; > } > elsif (ref($r) eq "Hump") { # Naughty--see below. > print "r is a reference to a Hump object.\n"; > } > elsif (not ref $r) { > print "r is not a reference at all.\n"; > } Eric P. Sunnyvale, CA -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>