in reply to Hash of hashes: Check if the element is present in previous hash table
A few suggestions:
- You shouldn't post code containing obvious syntax errors (unless you can't figure out how to fix them; in that case you should say that you're having trouble getting the syntax right).
- You should use proper indentation.
- When you present sample data with your code, the data should be consistent with what the code expects -- the code and data that you post should work together (unless you can't figure out why they don't work together; in that case the data you post should accurately reflect the data you actually have, and you should say you're having trouble handling it properly).
All that aside, I agree with Riales: the problem as stated in the OP can be solved with a simple hash. If you don't agree, then you must have some problem other than the one you described in the OP.
Also, I couldn't understand your reply to Riales, so here's an alternate version of the approach he suggested -- if you still have some problem that this doesn't solve, you'll need to describe that other problem.
I'll base the input data handling on the sample data as you presented it (rather than on the OP code snippet):
use strict; use warnings; my %words; for my $fnum ( 1 .. 4 ) { open( I, '<', "File$fnum.txt" ) or die "File$fnum.txt: $!\n"; while (<I>) { chomp; s/^[\s\d.]+//; # remove initial digit(s), period, whitespace, + if any $words{$_} .= $fnum unless ( exists( $words{$_} ) and $words{$_} =~ /$fnum$/ ) +; } } print "Words found in all four input files:\n"; for ( sort keys %words ) { print "$_\n" if ( $words{$_} eq '1234' ); }
|
---|
In Section
Seekers of Perl Wisdom