in reply to help figuring out what a section of script does

while(<FILE>) { # this reads through $FILE, line by line chomp; # remove end of line character my $j = 0; my $contents = $_; next unless ($contents =~ /^INSERT /); # process only lines wh +ich start with INSERT my ($junk1, $sql, $junk) = split(/\(|\)/, $contents); # get th +e values from what could be an SQL INSERT statement?! my ($zoom, $x, $y, $flags, $length, $data) = split(/\,/, $sql) +; # get the columns $data =~ s/^X'//; # remove X' at start $data =~ s/'$//; # remove single quote at end my $filename = "./maptiles-output/$x,$y\@$zoom.png"; next if int(length($data))<128; # skip bogus data? # Write what appears to be hex-encoded data to a PNG file?! print $filename . "\n"; open(OUT, ">$filename") || die "$filename: $!"; print int(length($data)) . "\n"; while($j < length($data)) { my $hex = "0x" . substr($data, $j, 2); print OUT chr(hex($hex)); $j += 2; } close(OUT); }

Maybe you want a look at SQL::Parser for parsing the SQL?

Replies are listed 'Best First'.
Re^2: help figuring out what a section of script does
by michaelsingleton (Novice) on Mar 19, 2017 at 15:31 UTC

    That awesome, and yes it's an output of BLOB SQLite data (unknown format so far, I think IOS 8 just directly writes the map image to SQLlite directly). So far, I get no output so I'm still figuring that out. I'll try the SQLParser too