in reply to Run shell script in perl

At the risk of repeating what's been said elsewhere, the 2 statements are not equivalent since the former uses the commands defined in set (as ikegami rightly says, that [set] is a spectacularly bad choice of name for a command script since it may well lead to all sorts of other problems) to update the environment for the duration of the process, whereas the latter attempts to run set as a shell script in a sub-process.

The equivalent of

$ . set $ stuff $ requiring $ modified $ environment
would be
system '. set ; stuff requiring modified environment' == 0 or die "sys +tem() failed - $!";

A user level that continues to overstate my experience :-))