Я действительно новичок в Perl, но я хочу в основном прочитать файл, чтобы получить из него некоторые данные. Я хочу проанализировать эти данные в массив. Почему массив? Потому что я хочу использовать данные для создания графика (гистограмма или круговая диаграмма данных).
Вот мой код для Perl:
#!/usr/bin/perl -w
use warnings;
#Creating an array
my @cpu_util;
#Creating a test file to read data from
my $file = "test.txt";
#Opening the while
open(DATA, $file) || die "Can't open $file: $!\n";
#Looping through the end of the file
while (<DATA>)
{
if (/(\w+)\s+\d+\s+(\d+)\.(\d+)\%/){ #Getting only the "processes"
chomp;
push @cpu_util, split /\t/; #I was hoping this would split the data at the tabs
}
}
close ($file);
foreach $value (@cpu_util) {
print $value . "\n";
}
Вот файл, в котором я читаю (test.txt):
=========================================
CPU Utilization
=========================================
Name CPU Time CPU Usage
-----------------------------------------
System 7962 3.00%
Adobe Photoshop 6783 0.19%
MSN Messenger 4490 0.01%
Google Chrome 8783 0.02%
Idle 120 94.00%
=========================================
Однако, что я заметил, это то, что я успешно заполнил массив, но он не разделяет вкладки и не дает мне многомерный массив. Меня не волнует поле времени CPU, но я хочу использовать CPU, поэтому я хочу напечатать XY-диаграмму с осью Y, в которой указана загрузка процессора, а по оси x - имя процесса.
Я надеялся получить массив "cpu_util" и иметь cpu_util [0] [0] = System и cpu_util [0] [1] = 3,00. Это вообще возможно? Я думал, что раскол / \ / t \ позаботится об этом, но, видимо, я ошибся ...