$v1 works fine that way, but you're correct in thinking that his logic is incorrect. After the first loop, $v1 will be $gettok($v1,%£,44) from the first loop.

--

OP, try this:

Code:
alias list {
  var %ß = 1, %£, %v1
  while ($readini(%file,$ini(%file,%ß),chan)) { 
    %£ = 1
    %v1 = $v1
    while ($gettok(%v1,%£,44)) { 
      echo -a $v1 
      inc %£ 
    }
    inc %ß 
  }
}


Btw, out of curiosity, why do you use such undescriptive variable names? It's only going to cause you some confusion if you go and look at a script after some time of not modifying it.