Zactly! When you DIM it, you Explicitly declare it as a local var. Arguments on the command line are implicitly declared as globals, but because the declaration is implicit, not explicit, you can override it with a Dim or Global inside your script.

This creates a point of conflict.. if you enable Explicit mode and reference $ACTION, and do not pass it on the command line, you'll get an Undeclared Variable error. If you declare it and it is passed on the command line, your declaration will destroy the data from the command line.

To be safe, you need something like:
 Code:
If Not IsDeclared($ACTION)
  Global $ACTION
  $ACTION = "default value"
EndIf

This is placed near the top of your code, and will insure that the var is declared (and optionally contains a default value). This satisfies the Explicit option fairly easily.

Glenn
_________________________
Actually I am a Rocket Scientist! \:D