On 6/24/21 2:46 AM, Fabien COELHO wrote: > > Bonjour Michaël, > >> Using grep() with "$re" results in all the fields matching. Using on >> the contrary "/$re/" in grep(), like list_files(), would only match >> the first one, which is correct. > > Ok, good catch. Perl is kind of a strange language.
Not really, the explanation is fairly simple: grep returns the values for which the test is true. grep ("$re",@values) doesn't perform a regex test against the values, it tests the truth of "$re" for each value, i.e. it's more or less the same as grep (1, @values), which will always returns the whole @values list. By contrast grep (/$re/, @values) returns those elements of @values that match the regex. cheers andrew -- Andrew Dunstan EDB: https://www.enterprisedb.com