in reply to Code style question

I usually use this config for perltidy that mirrors (mostly) the recommendations from Perl Best Practices (and it uses 4 spaces).

## PBP perltidy RC file -l=78 # Max line width is 78 cols -i=4 # Indent level is 4 cols -ci=4 # Continuation indent is 4 cols -st # Output to STDOUT -se # Errors to STDERR -ce # cucddled elsen (XXX my pref) -vt=2 # Maximal vertical tightness -cti=0 # No extra indentation for closing brackets -pt=1 # Medium parenthesis tightness -bt=1 # Medium brace tightness -sbt=1 # Medium square bracket tightness -bbt=1 # Medium block brace tightness -nsfs # No space before semicolons -nolq # Don't outdent long quoted strings -wbb="% + - * / x != == >= <= =~ !~ < > | & >= < = **= += *= &= <<= && += -= /= |= >>= ||= .= %= ^= x=" # Break before all operators

At first glance nothing about your sample file there looks particularly egregious (although your usage of prototypes is maybe a bit suspect; in most cases unless you're trying to affect how perl parses things in a weird way you don't want to use them (that being said the new signatures are a slightly different story)).

Edit: Also after another closer read looking at what the code's doing rather than formatting it looks like you may be reimplementing an existing wheel (see e.g. Data::Diver).

The cake is a lie.
The cake is a lie.
The cake is a lie.

Replies are listed 'Best First'.
Re^2: Code style question
by AlexP (Pilgrim) on May 21, 2021 at 07:09 UTC

    Thanks for your config, it's quite helpful.

    As for prototypes, I've often heard that they are almost never needed and your remark just proved this. So, I'll get rid of them.

    Data::Diver is cool, but i need practice in perl =) Maybe you know resource with module ideas?

      Nothing wrong with reimplementing wheels for pedagogical practice so long as you're aware that's what you're doing.

      As far as module ideas, some of the questions here can provide interesting things to poke at (e.g. Challenge: Generate a glob patterns from a word list recently). Or if you're of a mathematical bent maybe something like Project Euler problems. Working through some more general CS problems in SICP or code katas might be another thing to try.

      The cake is a lie.
      The cake is a lie.
      The cake is a lie.

        Great, I'll try to do it.

        Can you please answer one more question. I thought about what you wrote above: "Output to STDOUT". Do you mean to use "print STDOUT smth" instead of "print smth"?