#!/usr/bin/perl use common::sense; my %types; while (<>) { chomp; my ($button, $timings) = split /\t/; my @timings = split /\s+/, $timings; pop @timings; my $bit = 1; my @out = (); for my $t (@timings) { my $out = "<$bit:$t>"; if ($bit) { if ($t >= 8900 && $t <= 9100) { $out = "^"; } elsif ($t >= 100 && $t <= 700) { $out = "*"; } } else { if ($t >= 4000 && $t <= 5000) { $out = "#"; } elsif ($t >= 400 && $t <= 1000) { $out = "A"; } elsif ($t >= 1600 && $t <= 2200) { $out = "B"; } } $bit = 1 - $bit; push @out, $out; push @{$types{$out}}, $t; } print $button, "\t", join("", @out), "\n"; } print "\n# Median timings [μs]\n\n"; for my $k (sort keys %types) { my @v = sort @{$types{$k}}; print "$k\t", $v[@v/2], "\n"; }