When a function or Subroutine is defined a list of variables to “catch” the values being sent from where it is called from. These variables are local, even if they have the same name as other variables (outside the function/subroutine) the outside values will not change.
Subroutine variables may a list of zero or more, comma separated, variables. Arrays and variables may be passed by reference using the Ref definition.