Je suis vraiment nouveau à Perl, mais je veux lire un fichier pour en extraire des données. Je veux analyser ces données dans un tableau. Pourquoi un tableau? Parce que, je veux utiliser les données pour générer un graphique (barre ou tarte des données).Analyser un fichier dans un tableau
Voici mon code pour Perl jusqu'à présent:
#!/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";
}
Voici le fichier que je lis dans (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%
=========================================
Cependant, ce que je remarque est que je remplir avec succès le tableau, mais il ne divise pas les onglets et me donne un tableau multidimensionnel. Je ne me soucie pas vraiment du champ de temps CPU, mais je veux l'utilisation du processeur, donc je veux imprimer un diagramme XY avec l'axe Y ayant l'utilisation du processeur et l'axe des x, le nom du processus.
J'espérais avoir un tableau "cpu_util" et avoir cpu_util [0] [0] = System et cpu_util [0] [1] = 3.00. Est-ce seulement possible? Je pensais que le split/\/t \ s'en occuperait, mais apparemment je me suis trompé ...
Merci Brian, cela a fait l'affaire. Je vais maintenant essayer de regarder, comment représenter graphiquement ces données. J'ai examiné l'utilisation de Perl en $ 1 et $ 2, mais cela n'a toujours pas beaucoup de sens pour moi. Pourriez-vous peut-être me diriger vers un endroit où cela s'explique bien? Je ne comprends pas ce qui se passe exactement à: > $ cpu_util {$ 1} = $ 2; – c0d3rs
_Learning Perl_ est un bon point de départ. :) –