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