Source

perl-begin / DONE

Full commit
* Create a macro for a link to a CPAN distribution
(http://search.cpan.org/dist/MyDist-Here/), a self link (with MyDist-Here as
the contents), and a perldoc?MyModule::Here link.

* Put the TODO and DONE on the web-site so people will be able to view
them and contribute.

* Page about Bad Elements:
    - discuss commenting.
    - accessing object slots directly
        - use accessors.
    - Reference the sources the advice was taken from and further reference:
        - Perl Best Practices
        - The Ancient Perl pages on the Perl 5 Wiki.
        - chromatic's Modern Perl book.
        - advice given by people on Freenode's #perl and on the Perl beginners
    - ^ and $ in regexes.
        - ambiguous.
        - better use \A and \z to mean start-of-string and end-of-string.
        - with /m can be used for start-of-line / end-of-line.
        mailing list.
    - refactoring:
        - magic numbers.
    - string variables interpolated by themselves - "$myvar".

* Add Perl-Monks to more relevant pages.

* Add a page explaining about Perl 6.
    - New language.
        - Not compatible
    - Is it still Perl?
    - Perl 5 and CPAN derive inspiration from it.
    - This site focuses on Perl 5.

* Add a page about E-mail-handling.

* Add a page about optimizing / profiling / etc.

* OO Programming Section:
    - maybe add the list of OO modules I composed.
        - rejected because they will only be confusing.

* Fix the site-resources/ Web Forum detail.

* Add a page about ssh/telnet.

* Update the uses/ and topics/ pages with the sub-pages.


* Credit tm604 about the CSS style tip.

* Typo in src/links/index.html.wml - "Perlin".

* Page about Bad Elements:
    - Array element: @array[$idx] instead of $array[$idx].
    - using $a and $b as variable names.
    - last/next/redo/etc. without explicit LABELs.
    - Add a note about using $ARGV[0] and $ARGV[1].
    - abuse of $#array (like $#array + 1 for array length).
    - $array[$#array] instead of $array[-1]
    - Accessing the last element using $array[$#array] - use $array[-1]
    instead.
    - interpolating strings directly into regex.
        - either comment that you want to inject a sub-regex or use \Q and \E.
    - don't overuse $_ - it's prune to errors.
    - Mixing tabs and spaces.
    - qx/`....` instead of system().
        - also open.
    - Always add an explicit return from the subroutine.
        - <<return 0;>> instead of <<return;>>
    - varvarname - using a variable as a different variable's name.
    - leading underscores ("_") for non-API methods and functions.
    - print {$fh} @args instead of "print $fh @args" which is too easy to miss.
    - STDIN instead of ARGV.
    - modifying an array/hash while iterating over it.
    - comments and identifiers in a foreign language.
    - avoid using perlform - use Perl6::Form instead (also see the text
    generation page).
    - C-style for loops.
        - rejected because it is a PBP-recommendation that we do not necessarily
        accept. They are shorter than the eqvuivalent while...continue loops.
    - http://www.stonehenge.com/merlyn/UnixReview/col52.html
        - $object->new() to create a new instance.
    - Law of Demeter
    - EEK
        - pass items from one subroutine to another.
            - use objects.
            - assign them to slots.
    - refactoring:
        - long functions and methods.
        - duplicate code.
    - using map instead of for/foreach/while (each) for its side-effects.
    - using grep instead of first/any/all/etc or a hash lookup.

* Link to Perl/Qt once it's ready.

* Revamp the Testimonials on the pages.
    - What about it?

* Link to Fomberg's Hebrew with Perl site.
    - linked from the Perl 5 Wiki "Hebrew" Page:
        - https://www.socialtext.net/perl5/index.cgi?hebrew
        - It didn't belong anywhere on the site.

* Add screenshots to the IDEs page and other relevant pages.
    - there are screenshots.

* Restore a copy of "Life with CPAN" under /topics/cpan/ .

* Add a page with exercises/challenges:
    - Learning Perl
    - Beginning Perl
    - Project Euler
    - 99 Problems in Lisp
    - Perl Quiz-of-the-Week

* Add Plack/PSGI to src/uses/web/index.html.wml.

* Fix the other links in the life-with-cpan.

* Add a section about graphical debugger front-ends.

* Add a page about modules.

* Add a recommendation to read Modern Perl in the various topical pages.
    - create a tag for that.

* Add more id="" attributes to the <h2 /> | <h3 /> | etc. tags.

* Bad elements page:
    - The FileHandle module.
    - include/do/eval "$file_contents" instead of using a module.
        - pre-req - the modules page.
    - global variables as an interface to a module.
    - declaring all variables at the top of the file, instead of when they
    are first used, and in the innermost scope.

* Add a page about games and multimedia programming using Perl.
    - See the IRC conversation on #perl .

* Bad elements page:
    - Switch.pm.
    - threads.

* Add a page about "Perl"-vs.-"perl"-vs.-"PERL".