in reply to Re: hash function
in thread hash function

Last time I asked a question, people complained that I didn't show all the code, so I thought it best to do it this time. Seems like its a case of damned if I do, damned if I don't eh?
Basically I was after a function that I could call from the command line to print out all the words in a particular category:
# show the words of a classification sub show_classification { my ( $category ) = @_; #for each word in the matching category, print the word }

Replies are listed 'Best First'.
Re^3: hash function
by grep (Monsignor) on Oct 07, 2006 at 17:14 UTC
    You'll get a nack for what works when asking questions. As an exercise, read other's questions and try to answer them (you don't have to answer, if you don't want). You'll quickly see how to think like someone trying answer a question - and what they need to answer it quickly.

    What I would've done asking this question: Go to the data. You want to look inside %words. So I would have posted the sub classify which uses %words and the TIE that starts the hash %words. The problem being is you're asking at a perl site - so you should figure some of us have an understanding of perl. But we don't know your data.

    To your question:
    Take the keys of the %words and split them on '-'.

    ## UNTESTED use Data::Dumper; my %cats; foreach my $cat_word (keys %words) { my ($cat,$word) = split(/-/,$cat_word); push(@{$cats{$cat}},$word); } print Dumper \%cats;
    There you should have a hash %cats with the words that are in each cat.

    As for adding that into your program and printing it nicer than Data::Dumper, I'll leave that up to you.



    grep
    One dead unjugged rabbit fish later