http://qs321.pair.com?node_id=684046

YYCseismic has asked for the wisdom of the Perl Monks concerning the following question:

I'm still rather new to Perl, and have been learning it as a requirement for maintaining a program at work. The program is used to load physical survey information (x,y,z coordinates) for seismic lines, allowing the option to write to a file afterwards. Each survey file (SEG-P1 format, for those who might know what this is) may contain data for multiple seismic lines.

My current plan is to store (x,y,z) information in a hash of hashes, and I'm curious if anyone has a better idea for storing these data.

The data model and implementation as I see it look something like this:

Line --+ | +-- Station | | | +---- Easting (x) | +---- Northing (y) | +---- Elevation (z) | +-- Length | +-- Group (Stn) Interval %Coord = ( $Line_1 => { stn_1 => coord_1, stn_2 => coord_2, stn_3 => coord_3, ... ... ... stn_n => coord_n, }, $Line_2 => { stn_1 => coord_1, stn_2 => coord_2, stn_3 => coord_3, ... ... ... stn_n => coord_n, }, # And so-on to $Line_n );
From what I understand, the coordinates would then be accessed as (for example)
$Easting{$Line}{$Station}

Does this look like a reasonable model/implementation?

Is there an easier, more efficient way to do this?

I got the idea for the hash of hashes by googling Perl Data Structures, and found the data structures cookbook by Tom Christiansen, which discusses just these topics.