if ($class->_is_start_pattern($line)) { # we have found the start of a customer record ... } sub _is_start_pattern { my ($class, $line) = @_; return ($line =~ $class->START_PATTERN); # I really wish we could do #return ($line =~ $class::START_PATTERN); } ... #### sub START_PATTERN { return qr(^(\d)\s+\1$); } #### sub END_PATTERN_1 { return qr(^$); } #### if ($class->_is_end_pattern_1($line) || $class->_is_end_pattern_2($line)) { ... }