Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re: How do I empty out a hash?

by arno (Scribe)
on Oct 04, 2003 at 12:39 UTC ( [id://296498]=note: print w/replies, xml ) Need Help??


in reply to How do I empty out a hash?

Hi,

To delete a key, you don't need to know her value.
Here's my code :

my %hash = ( Carol => 22, Mary => 21, Chris => 30 ); map { delete $hash{$_} } keys %hash;
Update: Of course this makes use of map in void context. Yick. And a couple other suggestions came in by way of followup:

  • delete @hash{(keys %hash)}; # Hash slice
  • %hash = (); # Most efficient method.

Arnaud

Replies are listed 'Best First'.
Re: Answer: How do I empty out a hash?
by Aristotle (Chancellor) on Oct 04, 2003 at 16:10 UTC
    Easier yet.
    delete @hash{(keys %hash)};
    Update: this is, of course, only useful when you want to use delete the keys from one hash in another one, as in
    delete @foo{(keys %bar)};
    Otherwise, only the below solution makes any sense.

    Makeshifts last the longest.

      Even more easier!

      %hash = ();

      And twice more quicker also.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://296498]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (5)
As of 2024-04-19 15:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found