the cpu percentage will not interpreted as an numeric value
Actually, due to Perl trying to numberify a string in numeric context, it turns out percents written as strings get reasonably interpreted as numbers:
C:\WINDOWS\system32>perl -MDevel::Peek=Dump -le " $a = qq(3.14%); Dump
+ $a; $b = qq(2.718%); Dump $b; print $a <=> $b; Dump $a; Dump $b"
SV = PV(0x1daf58) at 0x44d2660
REFCNT = 1
FLAGS = (POK,IsCOW,pPOK)
PV = 0x44ebf28 "3.14%"\0
CUR = 5
LEN = 10
COW_REFCNT = 1
SV = PV(0x1dafb8) at 0x44d2300
REFCNT = 1
FLAGS = (POK,IsCOW,pPOK)
PV = 0x44ebe68 "2.718%"\0
CUR = 6
LEN = 10
COW_REFCNT = 1
1
SV = PVNV(0x1d9288) at 0x44d2660
REFCNT = 1
FLAGS = (POK,IsCOW,pNOK,pPOK)
IV = 0
NV = 3.14
PV = 0x44ebf28 "3.14%"\0
CUR = 5
LEN = 10
COW_REFCNT = 1
SV = PVNV(0x1d9268) at 0x44d2300
REFCNT = 1
FLAGS = (POK,IsCOW,pIOK,pNOK,pPOK)
IV = 2
NV = 2.718
PV = 0x44ebe68 "2.718%"\0
CUR = 6
LEN = 10
COW_REFCNT = 1
... They start out as just the string (PV); but after running numeric compare, you can see that it had the right output value for
$a <=> $b (1) and afterward, they also have the reasonable floating-point value (NV) of 3.14 and 2.718.