#! perl -slw use strict; until( eof( DATA ) ) { no warnings 'uninitialized'; printf '%-7.7s %-7.7s ', =~ m[ ([^,]+) , \s* (.+) $]x; printf '%7.7s %7.7s %7.7s ', =~ m[ ([^/]+) / (?:(\S+)\s+)? (\S+) $]x; printf "%s\n", =~ m[^(\S+)]; } __DATA__ Alanon, Bart 5590/EL ---- O'Lewis, John. ----/--- -- john Le Much,Bo Jo 3406/165 NS ed@a.nl Abe-Jen, Mar-Jo 3421/164D NS cbest