2.12. Blocks
If two or more statements share one line, each of them becomes harder to comprehend: RECORD: while (my $record = <$inventory_file>) { chomp $record; next RECORD if $record eq $EMPTY_STR; my @fields = split $FIELD_SEPARATOR, $record; update_sales(\@fields);$count++; } You're already saving vertical space by using K&R bracketing; use that space to improve the code's readability, by giving each statement its own line: RECORD: while (my $record = <$inventory_file>) { chomp $record; next RECORD if $record eq $EMPTY_STR; my @fields = split $FIELD_SEPARATOR, $record; update_sales(\@fields); $count++; } Note that this guideline applies even to map and grep blocks that contain more than one statement. You should write: my @clean_words = map { my $word = $_; $word =~ s/$EXPLETIVE/[DELETED]/gxms; $word; } @raw_words; not: my @clean_words = map { my $word = $_; $word =~ s/$EXPLETIVE/[DELETED]/gxms; $word } @raw_words; |