Usr | S 11/17 00:46:33 1100619993.349208 | E 11/17 00:46:33 1100619993.361487 | ID:21124 | 0.012279
Cnt | S 11/17 00:07:07 1100617627.980650 | E 11/17 00:07:39 1100617659.310731 | ID:32539 | 31.330081
Day | S 11/17 00:04:59 1100617499.362986 | E 11/17 00:04:59 1100617499.628110 | ID:21124 | 0.265124

というような形式で記述されているテキストを、『| E』の直前の17バイトの数字で
ソートしてファイルに書き込みたいのですが、どのようなコードかわからず躓いてます。



while( <READ> )
{
 if ( /(\w{3}) | S (\d+)\/(\d+) (\d+):(\d+):(\d+) (\S{17}) | E (\d+)\/(\d+) (\d+):(\d+):(\d+) (\S{17}) | ID:(\d+) | (\S+)$/ )
  {
   push ( @value , [ $2, $_ ] );
  }
}

@sort_value = sort{ $a->[0]<=>$b->[0] } @value;
print WRITE $_->[1] foreach( @sort_value );

としてあるのですが、意図した通りに動いてくれません。
どのようにしたらいいでしょうか?

どなたかわかる方、ご教授お願いいたします。