Hi ghenry,
When I am thinking of my code, there are two words which I look out for which suggest I might want ot use a hash. Those words are "of" and "contains" (or its more perlish alternative, exists).
An example of "of" might be
my %capitals = (France => "Paris",
Scotland => "Edinburgh",
);
# find the capital "of" Scotland
print $capitals{"Scotland"}, "\n";
The fast access speed of hashes makes it a good candidate to find the intersection of two lists. For (a rather contrived) example
# we have a pre-prepared list of prime numbers
my @primeslist = qw(2 3 5 7 11 13 17 19 23 29);
# populate a hash with the primes as keys
# this allows for fast retrieval
my %primes;
@primes{@primeslist} = ();
# now we can loop through our new list ( 1 .. 30)
# using the exists() function to (quickly) check if a key exists
print "$_ is prime\n" for grep exists $primes{$_}, 1 .. 30;
Hope this helps
thinker
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|