はまったところなのでメモしておきます。
ハッシュの配列の特定の要素を削りたい、けれど配列の要素の順序は一定とは限らないし追加もあるかもしれない。
なんて時にgrepが有効です。

ハッシュの配列があって、


my @hoge = [
{
id => 1,
name => 'hogehoge'
},
{
id => 2,
name => 'mogemoge'
},
{
id => 3,
name => 'hogemoge'
}
];

idが2以外のものがほしいときは以下のように処理します。
@hoge = grep ( $_->{id} != '2', hoge);

これをprintすると、中身は


[
{
id => 1,
name => 'hogehoge'
},
{
id => 3,
name => 'hogemoge'
}
]
となるはずです。