so these two are equivalent ???
{
my $x is yours ;
my $y is yours ;
my $z is yours ;
....1...
sub_a ;
....2...
}
sub sub_a ( ; $x is yours, $y is yours ) { ...3... } ;
----------------------------- same as -------------
# ( here no special meaning for "is yours" -- just another property )
{
my $x is yours ;
my $y is yours ;
my $z is yours ;
....1...
#alias %MY to topic so that it can be fetched from sub_a by "is given"
$_ ::= \%MY ;
sub_a ;
....2...
}
sub sub_a ( ;$x is yours,
$y is yours ) is given($CALLER_SYMB)
{
#alias variables from $CALLER_SYMB to the local variables if
#requested
$SUB_SYMB ::= \%MY ;
for $SUB_SYMB.keys {
if $SUB_SYMB{$_}.yours
and $CALLER_SYMB{$_}.yours
{
$SUB_SYMB{$_} ::= $CALLER_SYMB{$_} ;
}
} ;
$CALLER_SYMB = undef ; #but better if this happens at compile time
# -- probably this have to be forced with
# BEGIN
....3...
} ;
arcadi