use strict; use warnings; print map {qq{$_->[0] -- $_->[1] -- $_->[2]\n}} map { [ split m {(?x) (?: (?<=[a-z])(?=[^a-z]) | (?<=[^a-z])(?=[a-z]) ) } ] } map {chomp; $_} ; __END__ a=b a!=b ab a>=b #### a -- = -- b a -- != -- b a -- < -- b a -- <= -- b a -- > -- b a -- >= -- b