配列の添え字が整数でない場合は、自動的に小数点以下が切り捨てられ、整数でインデックス指定したとみなされます。 仕様的な言葉で言うと、「インデックスに浮動小数点数を指定した場合は、自動的にそれを超えない最大の整数に変換されます」です。
print $arr[2.901]; # $arr[2] に変換される