sub classify_line { # return (indent, type, modified_line, info) local $_ = shift; s/^(\s*)$// && return (length($1), $BLANK, $_, undef); s/^(\s*\*\s+)// && return (length($1), $BULLET, $_, undef); s/^(\s*(\d+)\.\s+)// && return (length($1), $NUMBER, $_, $2); s/^(\s*)// && return (length($1), $PLAIN, $_, undef); die "classify_line:\n\t" . $_ . "\n"; }