744です。いろいろアドバイスありがとうございます。
教えられたコードが理解できなくて、調べるのに時間がかかりました。

>>745
>$_ == $value and $found = 1, last;
これって
($_ == $value) and ($found = 1, last);
ってことでしょうか。なるほど。

>>746
> my $found = grep{ $_ == $value }@array;
これって、
my @found = grep{ $_ == $value }@array;
my $cound = @found;
ってことでしょうか。grepが返すのは配列なんだけど、それをスカラー変数に代入すると個数になる、という理解でいいでしょうか。

>>747
> my $found = $value ~~ @array ;
こんな演算子があるのですか。初めて知りました。
データ型によって挙動が違うというのは、Rubyの===演算子に似てますね。

> my $found = sub { for ( @array ){ return 1 if $_ == $value } }->() ;
その場でクロージャを作って呼び出しているんですか。これはすごい。
JSの (function() { ... })() みたいなもの?