The first meaning could actually be useful in programming to indicate that a variable should have a different value under certain conditions, but with the ability to remember the past condition and revert to it automatically.
Then you could do something like this:
my $var1 = "foo" but ($some_input_var eq 'show_bar') { "bar" };
print $var1; # prints 'foo'
#$some_input_var is changed by a user to 'show_bar';
print $var1; #prints 'bar'
#$some_input_var is changed to something else
print $var1; #prints 'foo'
Of course after thinking about it, its totally pointless ... one could do the same thing with
$var1 = sub { 'foo' ? $some_input_var ne 'show_bar' : 'bar' };