Thanks Curtis. However, I am not seeing what you had mentioned in your response. When I tested this code, it did not create a key called 'key3'.
#!/usr/bin/perl # Test Auto-vivification use strict; my(%hash); %hash = ( 'key1'=>'val1', 'key2'=>'val2'); #Please note that I am trying to access a new non-existing key called 'key3' print ("\n $hash{'key1'}\n\n $hash{'key2'}\n\n $hash{'key3'}"); while(my($key,$val) = each %hash){ print ("$key ==> $val\n\n"); } -----Original Message----- From: Curtis Poe [mailto:[EMAIL PROTECTED]] Sent: Thursday, October 18, 2001 7:23 PM To: [EMAIL PROTECTED]; [EMAIL PROTECTED] Subject: Re: What is Auto-Vivification --- [EMAIL PROTECTED] wrote: > Friends -- Could you briefly explain the term "auto-vivification"? I have > seen this quite a few times in some of the responses. > > A simple example to prove the point would be greatly appreciated. > > Thanks, > Rex Rex, Auto-vivification is trying to access a hash entry that doesn't exit. If that is done, the hash entry is typically created with an 'undef' value. my %hash = ( foo => 'bar', baz => 'qux' ); print $hash{ 'foo' }; # prints 'bar' print $hash{ 'stuff' }; # prints nothing, but now $hash{ 'stuff' } exists and is equal to undef To check for a hash entry without auto-vivifying it, use 'exists'. if ( exists $hash{ 'stuff" } ) { print $hash{ 'stuff' }; } else { print q|No %hash entry for 'stuff'.|; } Cheers, Curtis "Ovid" Poe ===== Senior Programmer Onsite! Technology (http://www.onsitetech.com/) "Ovid" on http://www.perlmonks.org/ __________________________________________________ Do You Yahoo!? Make a great connection at Yahoo! Personals. http://personals.yahoo.com -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]