in reply to Re: Meaning of Maintanability and Functionality in Coding Perl
in thread Meaning of Maintanability and Functionality in Coding Perl

Try to avoid Perlisms...
Why would you bother to use the perl interpreter if you want to write in some other language. That's only going to confuse real Perl programmers. There are plenty of other languages to choose from. Idioms are there for a reason.
...like the assumption that if(/.../) applies to $_.
Why is this an assumption? Is there any time when m/.../ doesn't match against $_?
  • Comment on Re^2: Meaning of Maintanability and Functionality in Coding Perl

Replies are listed 'Best First'.
Re^3: Meaning of Maintanability and Functionality in Coding Perl
by swampyankee (Parson) on Oct 18, 2005 at 21:24 UTC

    Every language has its esoterica and every language has features that make future maintenance more challenging than it should be. I'm not saying never use substr as an lvalue; I'm saying (turgidly, perhaps) is that idiom should be eschewed if it conflicts with clarity.

    I doubt if writing
    if($current_line =~ m/abc/)
    will confuse a real Perl programmer, just as I doubt that
    DO LOOP_COUNTER = START, FINISH
    will confuse a real Fortran programmer.
    Why not write
     DO I=J,K
    instead?

    I will agree idioms are there for a reason, but the idioms are not the language. Fortran, a language I've dealt with for several decades, has all sorts of idioms which are generally considered Bad Things. Most corporate style guides forbid Fortran programmers from using computed and assigned gotos and arithmetic if statements, both perfectly legitimate idioms. Perl has a goto; it's there for a reason, but that doesn't make its use a good idea.

    emc