Erik Steven Harrison: # But still, what counts as a runtime property, other than true or # false, as in the delightful '0 but true'? What other kind of runtime # labels can I slap on a value?
These occur to me: $foo=0 but string("zero"); $bar='foobar' but num(1); $baz=1 but string("one") but tainted; FWIW, though, I think we can probably get away with 'is' only and tagging of properties: #XXX are classes properties? Will they look something like this? class string is property('run') { method INIT($targ: $strval) { $targ.prop{string}=$strval; } method operator:_($targ:) { return $targ.prop{string}; } } class aka is property('compile') { method INIT($me: $targ: *@names) { # $foo.prop{name} is the FIRST name given to that, i.e., the first # variable it was bound to. my $targname=$targ.prop{name}.substr(1, $targ.prop{name}.length-1); # $targ.prop{scope} is the stash of the FIRST name given to it. my $scope = $targ.prop{scope}; # $scope.num is a hash mapping names to positions. my $num = $scope.num{$targname}; for @names -> $name { $scope.num{$name} = $num; } } } class named is property('compile') { method INIT($me: $targ: *@names) { my $targname=$targ.prop{name}.substr(1, $targ.prop{name}.length-1); my $scope = $targ.prop{scope}; my $num = $scope.num{$targname}; $scope.num.delete($targname); for @names -> $name { $scope.num{$name} = $num; } } } --Brent Dax <[EMAIL PROTECTED]> @roles=map {"Parrot $_"} qw(embedding regexen Configure) "In other words, it's the 'Blow up this Entire Planet and Possibly One or Two Others We Noticed on our Way Out Here' operator." --Damian Conway