while() { # 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 which start with INSERT my ($junk1, $sql, $junk) = split(/\(|\)/, $contents); # get the 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); }