perl实现，待续...