variable Scope

Documentation for variable Scope assembled from the following types:

language documentation Ruby to Perl 6 - Nutshell

From Ruby to Perl 6 - Nutshell

(Ruby to Perl 6 - Nutshell) variable Scope

For local variables, Ruby uses implicit variable declaration upon assignment and limited to the current block. In Ruby the content of an if or while built-in construct is not a block or scope.

Perl 6 uses explicit scope indicators, and never creates variables implicitly. Every place you see { ... } is a scope, including the body of a conditional or loop. The commonly used scope declarations:

foo = 7        # Ruby, variable scope is defined by first assignment and 
               # extends to the end of the current block 
my  $foo = 7;   # Perl 6, lexical scoped to the current block 
our $foo = 7;   # Perl 6, package scoped 
has $!foo = 7;  # Perl 6, instance scoped (attribute)