Assignment operation Assignment operation

The assignment is the plainest of the operators: it works just like in any other programming language.
The syntax is:
<target> = <source>
<target> must be a variable, <source> can be any parameter.
If the <target> variable doesn't exist, it is created. If it already exists, it is eventually converted to the type of <source> (scalar, hash or array).
If <source> evaluates to an empty value then the <target> variable is unset.

Examples

# Assigning a constant to the variable %Tmp
%Tmp = 1
echo %Tmp
# Assigning a string constant to the variable %Tmp
%Tmp = some string
echo %Tmp
# Assigning a string constant to the variable %Tmp
%Tmp = "some string with whitespace preserved"
echo %Tmp
# Assigning a variable to another variable copies its contents
%Someothervariable = "Contents"
%Tmp = %Someothervariable
echo %Tmp
# Assigning a variable string to the variable %z
%color = blue
%z = my eyes are %color
echo %z
# Assigning a variable string (with a function call inside) to the variable %x
%x = the system os is $system.osname
echo %x
# Assigning an empty string to the local variable %y unsets %y
%x =
echo %y
# This is equivalent to the above
%y = ""
# This is equivalent too, if $function evaluates to an empty string
%y = $function()
# Assigning a variable string to a hash entry
%Dict{key} = $system.osname\ian
# Unsetting an array entry
%mydict[23] = ""
# Assigning a hash to another: %mydict[] becomes a copy of %anotherdict[]
%anotherdict{"The key"} = "Some dummy value"
%mydict = %anotherdict
echo%mydict{"The key"}
# This will convert %mydict to be a scalar variable (deleting all the %mydict contents!)
%mydict = "some default value"
# Unsetting a whole hash
%anotherdict =

Index, Language Overview