local(@pairs) = split(/&/,$buffer);
この処理で、
id=1&url=http://www.***.com/ を
id=1 url=http://www.***.com/ に分割し(@pairsに)
foreach $pair(@pairs){
local($name,$value) = split(/=/,$pair);
$FORM{$name} = $value;
}
で それらをさらに分ける。
$FORM{$name} = $value;

$FORM{id} = 1;
$FORM{url} = http://www.***.com/;
になるから%FORMに入れられる。あとはこれらを自由に処理するだけ。