return sum(@order) / @order;
}
elsif ($func =~ /\A([0-9.]+)v\z/) {
+ die "Invalid marker $char: percentile $1 out of bounds\n" if $1 > 100;
my $index = $#order * $1 / 100;
return ($order[$index] + $order[$index + .5]) / 2;
}
- else {
+ elsif ($func =~ /\A-?[0-9.]+\z/) {
return $func;
}
- } - $minval;
+ else {
+ die "Unknown marker $char: $func\n";
+ }
+ };
+ defined $pos or do {
+ warn $@ if $@;
+ next;
+ };
+ $pos -= $minval;
$pos >= 0 or next;
color(36) for $barmark[$pos * $size] = $char;
}
--- /dev/null
+Unknown marker a: test
+Invalid marker b: percentile 200 out of bounds
+Unknown marker 0: test
+ 998 ---
+1987 -------
+2955 ----------
+3894 --------------
+4794 -----------------
+5646 --------------------
+6442 -----------------------
+7174 -------------------------
+7833 ---------------------------
+8415 -----------------------------
+8912 -------------------------------
+9320 ---------------------------------
+9636 ----------------------------------
+9855 ----------------------------------0
+9975 ----------------------------------0
+9996 ----------------------------------0
+9917 ----------------------------------0
+9738 ----------------------------------
+9463 ---------------------------------
+9093 --------------------------------
+8632 ------------------------------
+8085 ----------------------------
+7457 --------------------------
+6755 ------------------------
+5985 ---------------------
+5155 ------------------
+4274 ---------------
+3350 ------------
+2392 --------
+1411 -----