Hi,
Juerd wrote:
> Ingo Blechschmidt skribis 2005-12-25 17:37 (+0100):
>> I disagree about binding only being a language thing:
>
> I fail to see how your example code illustrates your disagreement.
>
>> return 42
>> if (my $short := $long_parameter_name) == $specialcase;
I inferred that you think/thought that binding should/can't be used in
expressions:
Juerd wrote:
> That works very well, because binding as an expression makes no sense
> anyway, it being a language thing.
Thus I wanted to demonstrate that "binding as an expression" does make
sense (to me at least).
Sorry if I misinterpreted your post.
>> push @foo, (my $head := pop @grtz);
>
> A bit better style, but I'd still recommend against it.
Consider:
my @sites = < abc.org def.org ghi.org >;
loop {
push @sites, (my $site := shift @sites);
check_for_updates($sites);
sleep ...;
}
> You're doing something in an expression that has no effect on what
> happens in the expression itself.
Right; but I don't consider this as bad style or as "problematic".
Consider a perhaps more usual example:
# Perl 5
while(...) {
process($tasks[$i++]);
# The "++" does not have an effect on the expression itself,
# writing "process($tasks[$i])" wouldn't make any difference.
if(...) { $i-- } # redo the last task
if(...) { $i = 0 } # redo all tasks
if(...) { $i++ } # skip next task
}
--Ingo