Я действительно новичок в Perl, но хочу в основном прочитать в файле, чтобы получить некоторые данные из него. Я хочу проанализировать эти данные в массиве. Почему массив? Потому что я хочу использовать данные для генерации графика (bar или pie данных).Анализ файла в массиве
Вот мой код 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, поэтому я хочу распечатать график XY с осью Y с использованием CPU и осью x, именем процесса.
Я надеялся иметь массив «cpu_util» и имеет cpu_util [0] [0] = System и cpu_util [0] [1] = 3.00. Возможно ли это? Я думал, что раскол/\/t \ позаботится об этом, но, видимо, я ошибся ...
Спасибо Брайан, что сделал трюк. Теперь я попытаюсь посмотреть, как графа данных. Я изучал использование $ 1 и $ 2 с точки зрения Perl, но это все еще не имеет для меня никакого смысла. Не могли бы вы указать мне место, где его хорошо объяснили? Я не понимаю, что именно происходит: > $ cpu_util {$ 1} = $ 2; – c0d3rs
_Learning Perl_ - хорошее место для начала. :) –