use strict; use warnings; my %cpusocket; open CPUINFO, "/proc/cpuinfo" or warn; foreach() { if (/^physical\sid\s*:\s*(\d+)/) { $cpusocket{$1} = $1; } } print "Number of CPU sockets used: ".scalar keys %cpusocket."\n";