I am a beginner to lua scripting. I tried executing the below command in redis client

```
eval "print('hello world')" 0

```

and it works fine returning me

```
hello
(nil)    

```

Firstly i don't understand why does the nil is returned/gets printed always?? is it because of the lua-datatype to redis-datatype inter-conversion which returns nil??

Then i used if constructs and executed the below script 

```
eval "local t = 0; if t == 0 then print('hello'); end" 0 0

```

the above command prints as expected

```
hello
(nil)

```

But when i tried assigning the arguments to the local variable using the below code

```
eval "local t = ARGV[1]; if t == 0 then print('hello'); end" 0 0

```

the output is only

```
(nil)

```

So can someone explain me how should the assignments of the external arguments to the local variable be carried out??