think I need to give example, of both ways in my head.
using your initial scripts.
btw, isn't there double declaration in your script?
so much time when I last coded... can't remember how these go 
now, if tokenizing and having call and ruud makes call work as include, results is like:
Code:
Global $1, $2
$1="Apple"
$2="Orange"
Global $3, $2, $1
"Value of $$sPear is '"+$3+"'" ?
"Value of $$sOrange is '"+$2+"'" ?
"Value of $$sApple is '"+$1+"'" ?
when not using include, the result might be:
S1.kx
Code:
] Global $1, $2
$1="Apple"
$2="Orange"
call "s2.kx"
s2.kx
Code:
Global $3, $2, $1
"Value of $$sPear is '"+$3+"'" ?
"Value of $$sOrange is '"+$2+"'" ?
"Value of $$sApple is '"+$1+"'" ?
anyway, looking at your code's var declarations, it seems that it shouldn't work anyways...