Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: Code style question

by Fletch (Bishop)
on May 20, 2021 at 15:36 UTC ( [id://11132779]=note: print w/replies, xml ) Need Help??


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"?

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11132779]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others taking refuge in the Monastery: (4)
As of 2024-04-24 22:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found