Har ett litet problem med ett script. Det ska funka som sådant att man skriver in namn ända tills man avslutar inputen. Namnen sparas sedan i en array och som i sin tur printas ut. Såhär långt klarar vi.
Vårt problem är att programmet ska matcha orden i som ligger sparade i arrayn och printa ut hur många av samma ord som finns. Typ shär
Detta skriver vi in:
Stoffe
Stoffe
Erik
Utmatningen ska då bli:
stoffe [2]
Erik [1]
Hur gör man detta? PRoblemet är ju att man kan inte matcha en tom array som det faktiskt är från början. Eller ska man skita i en array över huvudtaget och köra med key istället? hur funkar det?
Såhär långt har vi kommit:
#!C:/perl/bin/perl.exe
print "Skriv in lite namn\n";
@namnarray = ();
do {
$namn = <STDIN>;
@namnarray = ($namn, @namnarray);
chomp @namnarray;
}
until $namn eq "\n";
print "@namnarray";
En hash som man brukar kalla det kan jämföras med en array fast istället för att du har ett index (en integer) som definierar varje element så har du en nyckel (sträng). Exempel:
#!C:/perl/bin/perl.exe
print "Skriv in lite namn\n";
@namnarray = ();
do {
$namn = <STDIN>; chomp $namn;
$namn{$namn}++ if $namn;
}
until $namn eq "";
foreach $key (keys %namn){
print "$key [$namn{$key}]\n";
}