Not ok cases
N65, N25
N65, N25
too many lats or lons
Err: 1
65P, E25
65P, E25
too many lats or lons
Err: 1
91, 47
91, 47
numbers are too big
LAT: 91 LON: 47
65P, W25
65P, W25
mixed languages
Err: 1
100 E, 91 N
N91 ,E100
numbers are too big
LAT: 91 LON: 100
47.9805, -186.5586
47.9805, -186.5586
numbers are too big
LAT: 47.9805 LON: -186.5586
####
1: 74 if(($ENG >0) && ($FIN > 0)) {
75 print "mixed languages\n";
76 $err++
77 }
2: 78 elsif (($FIN>0) && ( ($H{I}+$H{L})>1 || ($H{E}+$H{P})>1 )) {
79 print "too many lats or lons\n";
80 $err++
81 }
3: 82 elsif (($ENG>0) && ( ($H{N}+$H{S})>1 || ($H{W}+$H{E})>1 )) {
83 print "too many lats or lons\n";
84 $err++
85 }
4: 86 elsif ($H{E}>1) {
87 print "too many E\n";
88 $err++
89 }
5: 90 elsif ($H{I}>1) {
91 print "too many I\n";
92 $err++
93 }
6: 94 elsif ($H{L}>1) {
95 print "too many L\n";
96 $err++
97 }
7: 98 elsif ($H{P}>1) {
99 print "too many P\n";
100 $err++
101 }
8: 102 elsif ($H{W}>1) {
103 print "too many W\n";
104 $err++
105 }
9: 106 elsif ($H{S}>1) {
107 print "too many S\n";
108 $err++
109 }
10: 110 elsif ($H{N}>1) {
111 print "too many N\n";
112 $err++
113 }
...
11: 133 elsif ($comma_count > 3) {
134 print "too many commas\n";
135 $err++
136 }
12: 137 elsif ($dot_count > 2) {
138 print "too many dots\n";
139 $err++;
140 }
...
13: 169 if ($coords =~ /^[-+]?([1-8]?\d(\.\d+)?|90(\.0+)?),\s*[-+]?(180(\.0+)?|((1[0-7]\d)|([1-9]?\d))(\.\d+)? 169 )$/) {
170 print "all ok\n";
171 } else {
172 print "too big numbers\n";
173 }
##
##
elsif ( my @keys = grep $H{ $_ } > 1, keys %H ) {
for ( @keys ) {
print "too many $_\n";
$err++
}
}
##
##
30 my %H;
...
61 $H{E} = ($_ =~ tr/E//);
62
63 $H{I} = ($_ =~ tr/I//);
64 $H{P} = ($_ =~ tr/P//);
65 $H{L} = ($_ =~ tr/L//);
66
67 $H{W} = ($_ =~ tr/W//);
68 $H{N} = ($_ =~ tr/N//);
69 $H{S} = ($_ =~ tr/S//);
##
##
my %H = (
E => tr/E//,
I => tr/I//,
P => tr/P//,
L => tr/L//,
W => tr/W//,
N => tr/N//,
S => tr/S//,
);
##
##
7 $in =~ s/[NWSEIPL]//g;
$in =~ tr/NWSEIPL//d;
39 s/[^0-9NWSEIPL,.+-]/ /g;
tr/0-9NWSEIPL,.+-/ /c;
122 s/ /./g;
tr/ /./;
126 s/,/./g;
tr/,/./;
148 s/[NE]//g;
tr/NE//d;
156 s/[IP]//g;
tr/IP//d;