/usr/share/doc/libmapscript-perl/examples/shpinfo.pl is in libmapscript-perl 6.4.1-5+deb8u3.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #!/usr/bin/perl
use strict;
use warnings;
use XBase;
use mapscript;
use Getopt::Long;
my $file;
my %types = ( '1' => 'point',
'3' => 'arc',
'5' => 'polygon',
'8' => 'multipoint'
);
GetOptions("file=s", \$file);
if(!$file) {
print "Syntax: shpinfo.pl --file=[filename]\n";
exit 0;
}
my $shapefile = new mapscript::shapefileObj($file, -1) or die "Unable to open shapefile $file.";
print "Shapefile $file:\n\n";
print "\ttype: ". $types{$shapefile->{type}} ."\n";
print "\tnumber of features: ". $shapefile->{numshapes} ."\n";
printf "\tbounds: (%f,%f) (%f,%f)\n", $shapefile->{bounds}->{minx}, $shapefile->{bounds}->{miny}, $shapefile->{bounds}->{maxx}, $shapefile->{bounds}->{maxy};
my $table = new XBase $file.'.dbf' or die XBase->errstr;
print "\nXbase table $file.dbf:\n\n";
print "\tnumber of records: ". ($table->last_record+1) ."\n";
print "\tnumber of fields: ". ($table->last_field+1) ."\n\n";
print "\tName Type Length Decimals\n";
print "\t---------------- ---- ------ --------\n";
foreach ($table->field_names) {
printf "\t%-16s %4s %6d %8d\n", $_, $table->field_type($_), $table->field_length($_), $table->field_decimal($_)
}
|