Perl débutant ici ... J'ai eu de l'aide avec ce script perl de travail avec du code HASH et j'ai juste besoin d'aide pour comprendre ce code et s'il pourrait être écrit de manière à comprendre l'utilisation de HASHES plus facilement ou visuellement ??aider à comprendre perl hash
En résumé, le script exécute une regex pour filtrer la date et le reste de l'expression régulière extraira les données relatives à cette date.
use strict;
use warnings;
use constant debug => 0;
my $mon = 'Jul';
my $day = 28;
my $year = 2010;
my %items =();
while (my $line = <>)
{
chomp $line;
print "Line: $line\n" if debug;
if ($line =~ m/(.* $mon $day) \d{2}:\d{2}:\d{2} $year: ([a-zA-Z0-9._]*):.*/)
{
print "### Scan\n" if debug;
my $date = $1;
my $set = $2;
print "$date ($set): " if debug;
$items{$set}->{'a-logdate'} = $date;
$items{$set}->{'a-dataset'} = $set;
if ($line =~ m/(ERROR|backup-date|backup-size|backup-time|backup-status)[:=](.+)/)
{
my $key = $1;
my $val = $2;
$items{$set}->{$key} = $val;
print "$key=$val\n" if debug;
}
}
}
print "### Verify\n";
for my $set (sort keys %items)
{
print "Set: $set\n";
my %info = %{$items{$set}};
for my $key (sort keys %info)
{
printf "%s=%s;", $key, $info{$key};
}
print "\n";
}
Ce que je suis en train de comprendre est ces lignes:
$items{$set}->{'a-logdate'} = $date;
$items{$set}->{'a-dataset'} = $set;
Et encore quelques lignes vers le bas:
$items{$set}->{$key} = $val;
Est-ce un exemple de référence de hachage? hash de hashes?
Je suppose que je suis confondu avec l'utilisation de {$ set} :-(
Si vous n'avez pas lu [perldoc perlreftut] (http://perldoc.perl.org/perlreftut.html) et [perldoc perldsc] (http://perldoc.perl.org/perldsc.html) ils seraient bons endroits pour commencer. – hobbs
@hobbs - merci, il y a quelques bons exemples ici. – jdamae