Why are hashed values getting cached?

I’m on RouterOS 6.48.

My script looks like this:


:local myhash ({
    "var"="";
})

/put "Before:"
/put $myhash

:set ($myhash->"var") "value"

/put "After:"
/put $myhash

The first time I run my script, the output is:


Before:
var=
After:
var=value

The second time I run my script, the output is:


Before:
var=value
After:
var=value

Why would the Mikrotik cache a local variable’s value from the previous run? That doesn’t make any sense. It’s messing up my code.