in reply to Trying to use ESRI shapefiles (repost)

Typically, if it were just perl code, you could pass it to eval. In your case, it doesn't look like a simple array of arrays, as there are occurances of '][' in the file.

So, you would need to pass the string to some sort of parser that knows how to process that particular string. (I've never dealt with ESRI other than trying to install ArcView 6+years ago, so I have no idea what a suitable parser would be)

...

Also -- I don't know what the benefit was of changing your original message to match this one -- it might have been better to leave the original message intact, and post a followup in that same thread.

  • Comment on Re: Trying to use ESRI shapefiles (repost)

Replies are listed 'Best First'.
Re^2: Trying to use ESRI shapefiles (repost)
by johnmc (Novice) on Apr 04, 2007 at 14:44 UTC
    First let me apologize to everyone for re-posting the original message - I am learning the posting etiquette as I go, thanks for your patience...

    You pointed out one problem right off the bat - it should be and array of arrays, I missed a comma in the loading of the of the $arrayline.

    Correcting that oversight I still have an issue of:
    Can't use string ("[[6233436.1909606,2194112.253955") as an ARRAY ref +while "strict refs" in use at C:/Perl/site/lib/Math/Geometry/Planar.p +m line 923.
    when running.

    It appears I am confused on the ARRAY reference usage...

    Thanks!
      Typically, if it were just perl code, you could pass it to eval.
      undef $/; my $string = <DATA>; $string =~ s/\n//g; # strip the line returns in the middle $string =~ s/\Q][\E/],[/g; # fix the missing commas my $ref = eval $string; use Data::Dumper; print Dumper $ref; __DATA__ [[6233436.1909606,2194112.25395507],[6233761.94604823,2194103.2760573] +[6233761.9 4604823,2194103.2760573],[6233762.83704991,2194253.27401428][6233762.8 +3704991,21 94253.27401428],[6233862.31905238,2194250.97103715][6233862.31905238,2 +194250.971 03715],[6233862.11796135,2194125.32895491][6233862.11796135,2194125.32 +895491],[6 233853.10995097,2194050.84399622][6233853.10995097,2194050.84399622],[ +6233913.26 002859,2194048.73994099][6233913.26002859,2194048.73994099],[6233915.6 +0294322,21 93851.74997113][6233915.60294322,2193851.74997113],[6233893.64995314,2 +193869.222 05086][6233893.64995314,2193869.22205086],[6233850.98701156,2193903.17 +798063][62 33850.98701156,2193903.17798063],[6233844.27100507,2193908.52296993][6 +233844.271 00507,2193908.52296993],[6233815.7489989,2193931.22405435][6233815.748 +9989,21939 31.22405435],[6233789.86006027,2193951.83103602][6233789.86006027,2193 +951.831036 02],[6233674.96001573,2193955.16103198][6233674.96001573,2193955.16103 +198],[6233 546.54502092,2193958.87802609][6233546.54502092,2193958.87802609],[623 +3525.83404 865,2193959.47900245][6233525.83404865,2193959.47900245],[6233482.0790 +1437,21939 60.74602904][6233482.07901437,2193960.74602904],[6233429.35195173,2193 +962.273989 1][6233429.35195173,2193962.2739891],[6233404.12906333,2193963.0039648 +4][6233404 .12906333,2193963.00396484],[6233378.90298503,2193963.73700288][623337 +8.90298503 ,2193963.73700288],[6233328.37299498,2193965.19797513][6233328.3729949 +8,2193965. 19797513],[6233360.91503536,2194114.33006681][6233360.91503536,2194114 +.33006681] ,[6233361.95698291,2194213.73602217][6233361.95698291,2194213.73602217 +],[6233362 .47195967,2194262.98903315][6233362.47195967,2194262.98903315],[623343 +7.67196539 ,2194261.58598941][6233437.67196539,2194261.58598941],[6233436.1909606 +,2194112.2 5395507]]
        Super! - the eval was the answer!!

        eval-ing the scalar to made the AoA referencing work.

        Thanks for the info (and patience with my repost...)

        TTFN - John