perl pattern gen