in reply to Help me understand hashes

Often if you can't figure out how to drive a data structure in a clean way to achieve some end, it is because the data structure is not appropriate.

$row implies a contiguously numbered sequence starting at 0 or 1 to me. If that is the case then an array is much more appropriate than a hash.

In any case a code fragment with no data nor any explanation of what you are actually trying to achieve won't get you very good answers. Try presenting a small sample script with some sample data and telling us about the larger problem you are trying to solve.


Perl is environmentally friendly - it saves trees

Replies are listed 'Best First'.
Re^2: Help me understand hashes
by hallikpapa (Scribe) on Nov 16, 2007 at 17:54 UTC
    Yeah I suppose it's easier when there is a visual So I have a spreadsheet that has 4 tabs. STATION1 thru STATION4. This first column in each tab is the rowId , just incremental row counter. data on STATION1 would look like this:
    1,,business,first,last,email,,,,,
    STATION2(Column2 is a reference to Column1 in STATION1):
    1,1,,,123,Main,St,City,State,Zip
    STATION3 (Column2 references Column1 in STATION2):
    1,1,1,P-550,11223344 2,1,2,P-330,22334455
    I am inserting data into two hashes like so:
    $excel{$tab}{$row}{$col} = $cell->{Val}; $rehash{$tab}{$id}{$row} = $excel{$tab}{$row}{$col};
    This attempt is finding no results:
    for my $s2_key (keys %{$rehash{"1"}}) { if ( exists( $rehash{"1"}{$s2_key} )) { print SOMETHING; }
    Update: Durrr! That's what I get for operating on no sleep. Put "1" instead of "STATION2". I will continue to fiddle.