; Information is linked simply enough. In good code the commands are created with a design for expansion.

Select Case <Variable> {

Case (DATA)
; The variable set in active memory.. So by calling a variable it takes less memory...
Case Else
; The overhead and memory required for an if statement to be ran, is vertually the same as a Case statement.
; A few variables IE 3 will remain in memory until finish of the Case Segment.
}
; The code itself will look cleaner, and allow for users to understand the creators code easier.


Where as a work arround is a little bit more work and more taxing on mIRC

After each select case is passed through a custom identifier several alias's are called and variables each time
where as with a switch its simpler and easily ported
especially since the code for "if then else" can be easily modified to accept for switch/select case commands.


alias Select {
if ($1 = Case) {
STRING SET GLOBAL Select_Case $2-
return $true
}
if ($1 = END) {
STRING DELETE GLOBAL Select_Case
}
}

alias Case {
STRING GET GLOBAL Select_Case
var %Select_Case = $result
if ($prop = CS) {
return $iif($1- === %Select_Case, return $true)
}
if ($prop = ISIN) {
return $iif($1- isin %Select_Case, return $true)
}
if ($prop = ISWM) {
return $iif($1- iswm %Select_Case, return $true)
}
if ($prop = ISWMCS) {
return $iif($1- iswmcs %Select_Case, return $true)
}
return $iif($1- = %Select_Case, return $true)
}


alias STRING {
if ($1 = SET) {
hadd -m $2 $3 $4-
return $TRUE
}
if ($1 = GET) {
return $hget($2 , $3)
}
if ($1 = DELETE) {
hdel $2 $3
return $TRUE
}
if ($1 = CLEAR) {
hdel $2
return $TRUE
}
:ERROR
echo -s $error
reseterror
return $FALSE
}


The above is a work arround - Copy it if you want for now, but at some point it should be implimented to prevent mIRC from slowingdown/locking up as much.