[PERL] Hash probleem

Pagina: 1
Acties:

  • TrailBlazer
  • Registratie: Oktober 2000
  • Laatst online: 07:25

TrailBlazer

Karnemelk FTW

Topicstarter
ik wil van een lijst waarde alle dubbele waardes eruit vissen. En aan de unique entries een unieke value toekennen.
Ik kijk of een waarde in een has staat zoniet dan voeg ik hem toe en geeft die entry een unieke value. Zowel dan haal ik de unique value op die bij die key hoort
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
unless ($column{"$dna"})
{

      $column{"$dna"}=$m;
      $activecolumn=$m;
      $column[$m]="$dna";
print "not in hash add $dna\n";
      $m++;
}
else
{
      $activecolumn=$column{"$dna"};
}

Dit gaat echter een heel kleinbeetje fout zie output
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
NMSgs1 nieuwsta 47 > !44
./mat2csv ../gerrit.txt
Identifier "main::fruni" used only once: possible typo at ./mat2csv line 30.
Identifier "main::node" used only once: possible typo at ./mat2csv line 30.
Identifier "main::burst" used only once: possible typo at ./mat2csv line 30.
hash :  checking for dna -2041330150-m-0-
not in hash add 2041330150
[b]hash : 2041330150 checking for dna -2041330150-m-1-
not in hash add 2041330150[/b]
hash : 2041330150 checking for dna -2041330150-m-2-
hash : 2041330150 checking for dna -2041330150-m-2-
hash : 2041330150 checking for dna -2041330150-m-2-
hash : 2041330150 checking for dna -2041760002-m-2-
not in hash add 2041760002

Alleen het dik gedrukte gedeelte snap ik niet. De key zit in die hash dat zie ik als hem afdruk en het getal is exact hetzelfde als de key. Die streepjes eromheen is om eventuele spaties eromheen uti te sluiten enzo. Tevens de volgende keer dat die key tegenkomt gaat het wel goed. Hij doet het dus alleen met de eerste value.

  • TrailBlazer
  • Registratie: Oktober 2000
  • Laatst online: 07:25

TrailBlazer

Karnemelk FTW

Topicstarter
Ik heb het al opgelost. Moet ik vaker doen een topic openen :?
ik kende als value 0 toe aan mijn eerste hash key en dat vindt de unless false (klopt ook bedenk ik me nu). Ik heb er nu overal defined voorgezet en nu werkt het wel.
code:
1
2
3
4
5
6
7
8
9
10
11
12
unless (defined($row{"$rdna"}))
{
      $row{"$rdna"}=$n;
      $activerow=$n;
      $row[$n]="$rdna";
      $row2[$n]="$dlci";
      $n++
}
else
{
      $activerow=$row{"$rdna"};
}