use Geo::ShapeFile::Point comp_includes_z=>0; use Geo::ShapeFile; #reads the "test3D" shapefile layer. $shapefile = new Geo::ShapeFile("test3D"); #loops throught each shapefile and gets the shape #for each record for (1 ..$shapefile->shapes){ $shape = $shapefile->get_shp_record($_); #puts the points into an array of hashes @point = $shape->points; #for each point get the x,y co-ords and the #(hieght) values and print foreach $p (@point){ $x=$p->X; $y=$p->Y; $z=$p->Z; print "$x, $y, $z \n"; } }