Почему команда perl system() возвращает неверное значение?
попробуйте
top -b -n 1
или
top -n 1
top по умолчанию это же интерактивная команда, она не вернет ничего, пока Ctrl-C не нажать
perldoc.perl.org/functions/system.html
"The return value is the exit status of the program as returned by the wait call. To get the actual exit value, shift right by eight (see below)." То есть надо делить на 256.