2 use 5.010; use strict; use warnings;
6 # select relevant columns
7 />Browser versions(.*)/ ... m{</table>} && last or next;
8 my ($tr, $id, $count2, $count) = split /(?:<[^>]*>)+/;
9 $mobile = $count2 =~ /(?<!non) mobile/ if $id ~~ ' ';
10 next if $id ~~ ['Total', ' '];
12 # convert to usable syntax
13 my ($browser, $version) = split /\h+/, $id, 2;
18 when (['Firefox', 'Iceweasel']) {
27 $browser = $mobile ? 'op_mob' : 'presto';
29 if (m{\(Mini(.*)\)$}) {
31 ($_) = $1 =~ m{^/(\d+)};
34 s/\d\d\.\d\K.*// or do {
35 # major part only, except for ≥v9.6
36 $_ ge '9.6' ? ($_ = '9.6') : (s/\..*//);
42 $browser = $mobile ? 'ios_saf' : 'webkit_saf';
43 my $numversion = join('.', map { sprintf '%03d', $_ } split /\./, $version);
44 $numversion =~ s/6(?=\d{3})//; # incomparable 6532.22 → 523
46 # http://en.wikipedia.org/wiki/Safari_version_history
53 [ '531.022' => '4.1' ],
59 [ '525.013' => '3.1' ],
60 [ '525.026' => '3.2' ],
66 last if $numversion lt $_->[0];
71 $browser = 'webkit_chr';
72 s/\.\d+$// for $version;
77 s/\.0$// for $version;
80 $count{$browser}{$version} += $count;
91 curl http://stats.wikimedia.org/archive/squid_reports/2010-10/SquidReportClients.htm |
92 parsesquid.pl > browser-usage.inc.pl