J'ai un fichier SQL qui me donnera une sortie comme ci-dessous:Comment utiliser Perl pour analyser la sortie de la commande sqlplus?
10|1
10|2
10|3
11|2
11|4
.
.
.
J'utilise dans un script Perl comme ci-dessous:
my @tmp_cycledef = `sqlplus -s $connstr \@DLCycleState.sql`;
après cette déclaration ci-dessus, puisque @tmp_cycledef
a tous la sortie de la requête SQL, je veux montrer la sortie comme:
10 1,2,3
11 2,4
Comment pourrais-je faire cela en utilisant Perl?
EDIT:
J'utilise le code suivant:
foreach my $row (@tmp_cycledef)
{
chomp $row;
my ($cycle_code,$cycle_month)= split /\s*\|\s*/, $row;
print "$cycle_code, $cycle_month\n";
$hash{$cycle_code}{$cycle_month}=1
}
foreach my $num (sort keys %hash)
{
my $h = $hash{$num};
print join(',',sort keys %$h),"\n";
}
les impressions des états d'impression poing:
2, 1
2, 10
2, 11
2, 12
3, 1
3, 10
3, 11
mais en est toujours
1,10,11,12
1,10,11,12
1,10,11,12
1,10,11,12
1,10,11,12
1,10,11,12
1,10,11,12
Merci ... comme je suis nouveau à perl .could vous expliquer moi s'il vous plaît comment cela fonctionne? – Vijay
++, j'étais trop paresseux pour écrire le vrai code Perl :-) –
@benjamin bouton: Je l'ai rempli un peu. – Axeman