Local variables are available only in the module (program, procedure, function, or method) that creates them. Private variables are available to the module that creates them and any module "below" that module in the calling stack. That means that if you declare a private variable in program a and program a calls b and b calls c, it will be available to a, b, and c.
You should try to use local variables whenever possible. This allows you to seperate the logic of each module and makes your code a lot easier to read.
>What's the difference between 'Local' and 'Private' variables and what are the relative merits of both?