> > Me:
> [$foo is bar] can change the value of $foo.
>
> > Damian:
> Yes. For example:
> my $foo is persistent;
>
> Could you explain this further please?
The programmer has specified a property named 'persistent'.
The programmer has marked the $foo variable as being persistent.
The specification of that variable property has caused the
initial value of $foo to be retreived from disk.
Hence the specification of a property has changed a variable.
> What I was suggesting was to consider broadening what the
> $foo : bar style postfix sub syntax allows/assists bar to do,
> so that bars can be used to set properties OR do other stuff.
>
> Otherwise, I see a possibly interesting twist in which bar can
> do things beyond property setting, in particular, change $foo's
> value.
I am hopeful that properties *will* be generalizable in some of the ways
you're suggesting. I just wanted to clear up some misconceptions
about their semantics.
For an idea of what might be possible with properties, see the
various Attribute::* modules, starting with Attribute::Handlers.
Damian