Here's a method I use. It may not be the most efficient or elegant, but it works.
Basically, I use a hash array to get a union of the array and the hash (it could just as easily be 2 hashes), while keeping track of where the data came from....
Note that I stuck in some dummy data....
use strict;
my @user = (1,3,5,7,9);
my %log = ( 1 => 'today',
2 => 'today',
3 => 'yesterday',
4 => 'last week',
5 => 'now' );
my %result;
foreach my $x (@user) {
# Save the id ($x) in the result hash, save the location
# of data as value, 'both' if $log{$x} exists, user if not
$result{$x} = $log{$x} ? 'both' : 'user';
}
foreach my $y (keys %log) {
# Save the id ($y) in the result hash, save the location
# of data as value only if the id does not exist in result
# hash yet
$result{$y} = 'log' unless $result{$y};
}
foreach my $z (sort keys %result) {
print "$z: $result{$z}\n";
}
Here are the results:
1: both
2: log
3: both
4: log
5: both
7: user
9: user
Hope this helps.
Brian
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.