Subject: Subrutiner och multidimensionella arrayer...
From: Carl-Johan Sveningsson (woc@wlug.westbo.se)
Date: Wed, 28 Apr 1999 16:51:50 +0200 (CEST)
Hejsan hej...
Förlåt om jag skriver lite mycket hit till den här listan nu...har en del
att lära mig.
Hmmm...mitt problem gäller att jag försöker att göra en subrutin, men jag
har väldigt svårt att ta hand om utdatan...jag antar att det på nåt sätt
bör/kan göras med referenser och sånt, men jag klarar inte lista ut hur.
Jag skulle vara väldigt tacksam om någon mer upplyst kunde hjälpa mig.
Under Perl är det förresten.
Ok...problemet:
Utanför subrutinen är det en miljö med en massa olika poster/filer som ska
behandlas.
(Försöker förenkla det här).
Vardera av de här filerna genererar en skalär, som hamnar i
$changes[$filnr].
Utöver detta finns det en $date[$filnr] som subrutinen kommer behöva
också.
Dessa vill jag alltså stoppa in i subrutinen, få dem behandlade, så långt
inte så mycket besvär, det är ju bara två skalärer vi hanterar.
Utdatan däremot är mycket krångligare.
Varje $changes[$filnr] innehåller ett textblock, med en lista på
ändringarna som gjorts på gällande fil ($filnr). Detta block med ändringar
måste jag splitta upp och behandla lite.
Linjärt klarar jag av det, med en bunt loopar, men det blir tji i huvet på
mig när jag försöker få ut allt som utdatan ur en subrutin. Visst, jag
skulle kunna låta subrutinen manipulera de globala variablerna...men det
skulle bli så fult då, helst undviker jag det...om det går.
Litet förtydligande då, ut ur subrutinen ska jag ha arrayerna:
@comment[$filnr]
@changedate[$filnr]
@changeversion[$filnr]
@changeuid[$filnr]
Till sist måste jag vet hur många ändringar det var i textblocket, alltså
skalären:
$chnr[$filnr]
Jag vet att man inte får skriva som jag gjort där två stycken upp...men är
det tydligt vad jag menar? För varje fil, måste jag kunna lagra ett antal
comments, datum, versionsnummer osv...
Säg att jag vill komma åt kommentar nummer tre från fil nr fem, då skulle
jag alltså utanför subrutinen benämna den:
$comment[5][3]
Inte så snyggt kanske...men det har fungerat hittills...
Ummm...det här är lite rörigt för mig, om någon skulle orka sätta sig in i
det och hjälpa till så vore jag glad...
En poäng med att använda en subrutin för mig är förresten att jag vill
kunna behandla sakerna i en "skyddad" miljö, där det bara finns en fil,
jag vill inte röra in alla de andra...
Tack för mig.
/Carl-Johan
A real gentleman never takes bases unless he really has to.
-- Overheard in an algebra lecture.
----------o--o-oOo-o--o----------
Carl-Johan Sveningsson
woc@wlug.westbo.se
ICQ# 2357535
http://come.to/woc/
http://wlug.westbo.se/