|
My best node: Saturn (shaped like image above)
I like programming in Perl. Though I don't get to use it as much as I'd like. My two main hobbies nowadays are space stuff and Perl.
Coding Standards and Style
- On Interfaces and APIs
- On Coding Standards and Code Reviews
- Why Create Coding Standards and Perform Code Reviews?
- Writing Solid CPAN Modules
- The Boy Scout Rule
- Re: Some Help for a Report About Perl (Readability vs Maintainability References) (compares and contrasts "readability" vs "maintainability")
- Two Different Languages: Two Similar Books (PBP and CCS) (Perl and C++ programming standards, compares PBP and CCS books)
- Unix shell versus Perl
- Re: I need perl coding standards (Coding Standards References) (long list of references on coding standards)
- Re: Strategies for maintenance of horrible code? (Legacy Code References) (long list of references on dealing with legacy code)
- Re: Sane deprecation policy for a CPAN module? (Software Versioning References) (general software versioning links and CPAN versioning links)
- Re^2: Yet another config file editing programme : Tell me how to make it better ! (Switch/smartmatch References)
- Re^7: Dereferencing in blessed object (Subroutine Prototype References)
- Re: On comments (Commenting and Documentation References)
- Re^3: Common subs and Global Variables (Global Variables are Bad References)
- Data Structure References
- List Utils References
- Re: Swiss army knife module for files? (IO::All References)
- Re-runnably editing a file in place
- Perl Best Practices book: is this one a best practice or a dodgy practice?
- Data-driven Programming: fun with Perl, JSON, YAML, XML...
- Modern Perl: The Book: The Draft
- Re: Meaning of "Clean" Perl code
- Re: What is modern Perl?
- Re^4: What's it with Perl Syntax ?!
- Re: Where Do I Go Next?
- perl certification (re Certifications, see also Re^2: scripting a perl install on *nix, including making the workstation usable)
- Code style advice: where to put "use" statements?
- Perl Elitist Code vs Functional Code
- Practical example of "Is Perl code maintainable"
- How should I do (and document) effective semi-formal code review?
- Searching for duplication in legacy code
- Re: looking for feedback on my first script (2021)
- Re: [RFC] Review of module code and POD (Doco) (2021)
- Re^3: [RFC] Review of module code and POD (TDD) (2021)
- Re: New Discovery!!! (sub call without parentheses) - Coding Style (Perl coding style advice: always use parens (and no leading &) when calling user-defined subroutines/methods; don’t use unnecessary parens for built-ins)
- Re: perl one liner for csv file one field (useless use of cat and other awards References) (Useless use of cat award (e.g. cat with just one argument), plus other dodgy unix shell hacks)
- Re^2: Mapping list to hash is dropping list items (trim whitespace)
- Re^15: What esteemed monks think about changes necessary/desirable in Perl 7 outside of OO staff (Use block if not postfix if References)
Quotes
- on Data Structures vs Code
- on Code Optimization
- on Debuggers (see also: later version with more responses)
Logging and Debugging
- Re: perl compiler optimizer curiosity (Troubleshooting and Logging/Debugging References)
- Basic debugging checklist
Exceptions and Eval
- Re: eval to replace die? (Exceptions and Error Handling References)
- EyeBall stumps BodBall (Error Handling) - Exception Handling v Returning a value from a function indicating failure
- Re: eval question (avoid string eval References)
Security
- Re: Security techniques every programmer should know (Security References) (contains a long list of Security references)
- Re: Hiding your Script (Security through Obscurity References)
Sorting
- Re^5: Create sort function from a text file (Sorting References: Schwartzian, GRT, Orcish, External, Parallel) (contains references on sorting)
Globs and Typeglobs
- To glob or not to glob by haukex
- Re: Is typeglob feature really useful? (typeglob references) (contains list of references on typeglobs)
Memory Leaks and Garbage Collection
- Re: Perl Memory problem ... (Memory Tools References) (contains a list of nodes)
- Re: Not able to release memory (malloc implementation)
- Re^2: Perl, C and deallocation responsibility (Returning Memory back to the OS References) (2023)
- Is $^M a leftover April Fool? by BrowserUk (2003)
- How use $^M? by xiaoyafeng (2021)
Threads, Forks, Execs, Signals, Pipes, IPC, ...
- Re: Threads or no Threads (Threading, Signals, Event Loop and Concurrency References) (contains a list of nodes)
File Locking and Flushing
- Will these functions for use with Storable properly lock my file? (2021)
- File lock demo by LanX (2021)
- Re: Preventing multiple instances (References on flock and running one copy of a script at a time) (2020)
- Ensuring only one copy of a perl script is running at a time
- Re: Lock File
- Re: what is the meaning of $| in perl? (Buffering/autoflush/Unicode/UTF-8 References)
- Why can't some of my modules do log output to a file? by LittleJack (2022)
QA and Testing and DevOps
- Effective Automated Testing (Testing References)
- Perl CPAN test metadata
- Re: Winning people over to better development practises (TDD)
- PM discussion of Dependency Injection in Perl and C++
- What is the best way to add tests to existing code?
- Organising Large Test Suites
- Testing failures: How to override print to make it fail?
- Re: I need perl coding standards (Coding Standards References)
- Quality, Developers and Testers: Organisational Issues
- Re: How can I use Perl knowledge in my Software Testing career
- Re: Philosophical question about testing
- Re: Test Case Generator
- why Test::More? (see especially response from Your Mother)
- A brief question about testing/best practices
- Re^3: How to test for empty hash?
- Re: How to write testable command line script? (References on testing end-user scripts)
- Banal Configuration Languages by jdporter
- Re: Perl Contempt in My Workplace (Perl v Python v modern DevOps tools)
- Re: Looking for help for unit tests and code coverage on an existing perl script (modulino References)
- "Magic tools" that take the fun away
- Re: "Magic tools" that take the fun away (Build/DevOps/Cloud References) (mentions Cons/SCons and other Build & DevOps tools, including Perl-based Rex tool)
- Re^4: Rosetta Code: Long List is Long (Virtualization, Container, Multi-boot and Linux References)
- Re^3: Perl XAMPP DB Connect issue (Windows/Strawberry?) - WSL Ubuntu
Process
- Re: Overtime: the "Bad News" Warning Sign (Process and Quality References)
- Re: Similarities of Perl and Python? (Interviewing References)
Legacy Code
- Strategies for maintenance of horrible code? (my reply contains a long list of references)
- Nobody Expects the Agile Imposition (Part VI): Architecture
- The Boy Scout Rule
- What is the best way to add tests to existing code?
Comparing Programming Languages
- Re: Honest question about Perl, Python and Ruby (Comparing Programming Languages References) (contains a list of nodes comparing programming languages)
- Re^2: What's Perl good at or better than Python (Game of Life, Rosetta and Performance References) (contains a list of nodes comparing the performance of different programming languages)
- Re^2: Using exists to check element in array (autovivification References) (compares autovivification in Perl, Python, Ruby, PHP)
Scientific Computing and BioPerl
- Re^2: Organizational Culture (Part II): Meta Process (BioPerl/PDL/AI/Embedded/Data Science References) (contains a list of nodes)
- Re: first stumbling steps in PDL (PDL References)
- Perl GPGPU Modules by kcott (2021)
Mathematical:
- Re: Primes software drag race (Mathematical References) (prime numbers, bitwise operations, adding numbers using bitwise operations, ...)
Inline:
Perl Internals
CPAN, Github and Building Perl
- Writing Solid CPAN Modules
- Re: Sane deprecation policy for a CPAN module? (Software Versioning References)
- Perl CPAN test metadata
- Re: Replicate Perl setup (Building and Installing Perl References)
- Re^7: Meaning of XS object version (CPAN and Package Manager Security References) - includes an example of securely building Perl from scratch on Ubuntu
- Re^2: THREE new perl releases [Updated releases!] - build perl v5.38.2 from source
- Re^3: Perl XAMPP DB Connect issue (Windows/Strawberry?) - WSL Ubuntu - installing Ubuntu on Windows 11 laptop
- Windows precompiled binaries or DIY compile by ObiPanda (2023)
HPC (High Performance Computing) in Perl and C++
- The 10**21 Problem (Part I)
- The 10**21 Problem (Part 2)
- The 10**21 Problem (Part 3)
- The 10**21 Problem (Part 4)
- High Performance Game of Life
- More Betterer Game of Life
- Rosetta Code: Long List is Long
- Risque Romantic Rosetta Roman Race
- Re^2: What's Perl good at or better than Python (Game of Life, Rosetta and Performance References) (summary of GOL benchmarks, same algorithm implemented in Perl and C++)
- Re: Most Significant Set Bit (Bit Twiddling References)
- Re^5: Create sort function from a text file (Sorting References: Schwartzian, GRT, Orcish, External, Parallel) (contains references on sorting)
- Re: need help with judy array searching (Judy Array References)
- Re^5: Size of Judy::HS array: where is MemUsed()? - perldelta, Perl Releases and Building Perl
Performance References:
- Re: declaring lexical variables in shortest scope: performance? (on Code Optimization and Performance References) (Performance quotes from Knuth, Pike, Alexandrescu et al - plus many Performance References)
- Re^3: looping efficiency (Benchmark Example)
Database References
SysAdmin
- Re: Out-of-the box Perl version - lowest common denominator
- Re^3: Out-of-the box Perl version - lowest common denominator by Tux (CSV spreadsheet of list of Perl versions used on all Linux boxes)
- Re^4: Deciding dependency versions by Tux (Older versions of perl seen a lot on EOL releases: e.g. AIX, HP-UX, Solaris, Irix)
Code Golf (Perl, Python, Ruby, PHP, C++)
- Re: reduce code (Golfing References) (contains many golfing links)
- The golf course looks great, my swing feels good, I like my chances (Part I)
- The golf course looks great, my swing feels good, I like my chances (Part II)
- The golf course looks great, my swing feels good, I like my chances (Part III)
- The golf course looks great, my swing feels good, I like my chances (Part IV)
- The golf course looks great, my swing feels good, I like my chances (Part V)
- The golf course looks great, my swing feels good, I like my chances (Part VI)
- Spending Time on Saving Time [golf]
- Drunk on golf: 99 Bottles of Beer
- Compression in Golf: Part I
- Compression in Golf: Part II
- Compression in Golf: Part III
- The 10**21 Problem (Part I)
- The 10**21 Problem (Part 2)
- The 10**21 Problem (Part 3)
- The 10**21 Problem (Part 4)
- Dueling Flamingos: The Story of the Fonality Christmas Golf Challenge
- Golf: Magic Formula for Roman Numerals
- When One Golfer Speculates On What Another Is Doing...
- Necroposting Considered Beneficial
- Re^2: Golf: Length of longest line in a file
- Re^3: Counting positive numbers
- Re: pi and some continued fractions
- Re^2: Mini-Tutorial: Working with Odd/Even Elements
- Re: Golf: Sudoku solving
- Re^3: Perl Golf Ethics
- Re: Rot13 Challenge
- Re^3: Golf: Count unique words
- Golf: ROT-n
- Golf: Fix de facto HTML comments
- Competition fuels obsession over Perl
- Friday Golf: All 2-digit combinations
- Pascal-Sierpinski for golfers
- Diamonds for fun
- Golf for unique digits
- Homework Golf
- Using the olde times internet
- Golf Challenge: FizzBuzz
- Golf: Factorials
- Shorten this one-liner!
- 12 days of Perl?
The Lighter Side of Perl Culture
- Re: Some Help for a Report About Perl (Perl Culture and History References)
- BooK proposes a new Perl secret operator (Secret Operator References)
- Re: Does Humor Belong in Programming? (Quips and Quotes)
- The Lighter Side of Perl Culture (Part I): Introduction
- The Lighter Side of Perl Culture (Part II): JAPH
- The Lighter Side of Perl Culture (Part III): Obfu
- The Lighter Side of Perl Culture (Part IV): Golf
- The Lighter Side of Perl Culture (Part V): Poetry
- The Lighter Side of Perl Culture (Part VI): April Fools
Other Series
- Nobody Expects the Agile Imposition (Part I): Meta Process
- Building the Right Thing (Part I): Pretotyping
- Organizational Culture (Part I): Introduction
Fun
- Re: Add "Image Miniatures" to your HTML (Fun References)
- Re^5: How to find out if an argument is an LVALUE ? (Chickens References)
Perl History
- Perl (wikipedia)
- Perl 5 version history (wikipedia)
- perlhist
- Re: Obtaining old versions of Perl -- Perl 1.0
- modern perl 1.0 by cognominal (aka stefp ??)
- Re: Organizational Culture (Part II): Meta Process (Perl Timeline)
- Re^6: Peculiar hash behavior (brian d foy)
- Re^2: Why did you become a Perl expert (or programmer)?
Perl Monks History
- The First Ten Perl Monks
- The First Ten Perl Obfus
- The Top Ten Perl Obfus
- The Top Ten Perl Poems
- History of PerlMonks' Perl News by jdporter
- Terrifying Beauty
- How long have you been using Perl? poll by vroom - TimToady's reply ;-)
- Is Larry involved with Perl Development? - Re: Re: Re: Re: Synopsis 3 is out :)
Perl Monks Culture
- The First Ten Perl Monks
- Re: The First Ten Perl Monks (paco References)
- Re^4: Editing node titles w.r.t. Perl 6 (Perl Monks Culture References)
- Re: Perlmongers (was: Re^5: Editing node titles w.r.t. Perl 6 (communities)) - London.pm (Perl Mongers References)
- Re: How do you track nodes/replies of interest?
- Re^2: Controversial!! - Get rid of the -- vote option (Downvote References)
- Re^2: The Highest Rated Node of All Time (Experience Point References and Pranks)
- Re^6: Content deleted from beautyfulman's old posts (Perl Monks Vandalism and Missing Monks References)
- Re^3: Strawberry Perl can't find a module installed at a non-standard location (Perl Monks Boo-boos References)
- Necroposting Considered Beneficial
- Do we ever want to freeze threads? by talexb (2004)
Why did you get involved with Perl?
- How has Perl affected you? by stevieb (2017)
- Why did you become a Perl expert (or programmer)? by QM (2018)
- [RFC] What is [pP]erl to you, and how has this changed for you over the years (if it has)? by perlfan (2021)
One Liners
Parsing
- Re^3: Split first and last names (References on Parsing Names and Addresses)
- Re^2: Substitution remove all before (Parse HTML/XML with Regex References)
- Re: Indirect Object Syntax (Parsing Barewords References)
CGI and FastCGI
XML and HTML
- Stepping up from XML::Simple to XML::LibXML
- Perl XML FAQ
- Some questions from beginning user of XML::LibXML and XPath
- XML::LibXML and namespaces
- XPATH DOM traverse html/xml
- XML Newbie
- XML::SAX::ExpatXS - stop parsing?
- Fastest XML Parser for BIG files
- How to write an xpath query including attributes for an XML with namespace
- How to fetch a portion of a XML file to save it in another xml file
- xpath problem using XML::LibXML
- XML::LibXML and Namespace… I don't get it
- chromatic article about XML::Rabbit (XML::LibXML::Augment mentioned in a comment)
- Best XML library to validate XML from untrusted source
- HTML::Parser / Regex by MissPerl (2017)
Sundial
- Re: Just curious: is there a BOT that downvotes "me?" (summary of behaviour)
- All you need to know about SundialSvc4 (summary of behaviour by LanX)
- Re: Selling swimsuits to a drowning man (stats on SunnyD posts (e.g. eight times out of ten you post nothing but opinion) by Your Mother)
- Reaped: Re: Perl Foundation Community Affairs Team Transparency Report (claims seven ... then four ... downvoters)
- Re^4: Preventing Use of uninitialized value (warning PM newbies by jdporter)
- Re^2: Performance of hash and array inserts (incomplete list of reflexive virtual memory responses)
- Re^7: Perl and MongoDB (BrowserUk v SunnyD repartee) (historic SunnyD-Buk repartee summary)
- Re: Proposal: eliminate down-votes (longer (original) version of SunnyD-Buk repartee)
- Re: -175 := +127 Thank you all! (Updated!Now -152 := +144) (Buk vs sundial worst nodes comp; SunnyD record: all worst nodes of week, month, year briefly in March 2018)
- Re^7: -175 := +127 Thank you all! (Worst Nodes) (Who has the most centurian nodes? Ovid: 101, SunnyD: 2, LanX: 0)
- Re^2: Two sort in single Array set (hopeful code)
- Re^2: Perl: Why you no modern web framework? (details on worst nodes, responding to wrong post)
- Re^3: (Toward a better PerlMonks) Who do we serve, and why, and how can we do it better? (downvotes)
- Re^4: why appears AnonymousMonk and how to update posts
- Re^2: Read Between the Lines
- Re^3: Short and easy way to write if...elsif syntax
- Re^9: Convert undef to empty string in a hash (typography)
- Re^2: A simple question that can't be asked (more typography)
- Re^2: Can I please have multiple downvotes per (certain monk's) posts.
- Re^3: why does location of function matter?
- Re^2: Just curious: is there a BOT that downvotes "me?"
- Re^2: Optimized remote ping
- Re: A thought-provoking external article about abusive web-sites
- Re^4: A thought-provoking external article about abusive web-sites
- Re^4: [Solved]Need to extract a particular block of lines between two patterns (the "why" behind the behaviour)
- Re: And here's why I think "downvotes" should be eliminated, or tabulated separately ... by salva
- Re^6: -175 := +127 Thank you all! (Worst Nodes and Anonymous Posts) ("anonymous" posts from sundial?)
- Re^9: -175 := +127 Thank you all! (Worst Nodes) (... continued here from Nov 2021 due to its vast size)
- Re: And here's why I think "downvotes" should be eliminated, or tabulated separately ... (is he a real person?)
- Re^2: Perl and MongoDB (four consecutive nodes in a row)
- Re^4: latest perl book. (First non-anony post in a while (Sep 2 2020) plus list of s/knife/chainsaw/ corrections)
- Re^3: Random Nodes are prohibited (Clicking Random Node for the first time hit a SunnyD post)
- My last post on PerlMonks ... (SunnyD's last post 2018-07-24: returned 2019-05-29. 2019:8 posts; 2020:31, 2021:9+)
- Re^4: Review of CGI::Alternatives (SunnyD XP Over Time) (xp over time)
- Re: Verbose Tk Code (bread-truck idiom)
- Re^2: Last and Least (sundial photo torquay)
- Have BrowserUk and sundialsvc4 gone on holiday together?
- BrowserUk Missing but not Forgotten
Other
- Some recent DNA threads
- Re: I have been away from perl for a long time. Need suggestions for getting back in the game!
- Past Polls
PM FAQs
Basics:
- How do I post a question effectively?
- XY Problem
- How (Not) To Ask A Question
- On asking for help
- PerlMonks for the Absolute Beginner
- How do I compose an effective node title?
- Re: RFC - shortform posting guidance for newcomers
- I know what I mean. Why don't you? by GrandFather
- Re: I know what I mean. Why don't you? by xdg (why take a bunch of time to solve my problem myself when the community will do it for me? :)
- Re^3: checking for piped input data (XY Problem References) by me ("Here's my bad solution to a problem I haven't described, please fix this bad solution")
- Basic debugging checklist
- On node obliteration
- How To Ask Questions The Smart Way by ESR
- SSCCE: Short, Self Contained, Correct (Compilable), Example (external)
- Short, Self-Contained, Correct Example (PM)
Using strict and warnings:
For getting started with Perl, I put all references nowadays in this node:
Perl books:
- Re: So what is your Perl book "Trilogy" anyway? (Perl Book Links) (list of PM nodes about Perl books)
Perl modules:
- RFC: How to Release Modules on CPAN in 2011
- Best Module Starter?
- José's Guide for creating Perl modules
- Writing Solid CPAN Modules
- Simple Module Tutorial
- How to make a CPAN Module Distribution
And these external references:
- Starting a module with Module::Starter (Perl Training Australia)
- Writing Perl Modules for CPAN book by Sam Tregar (also available as free pdf at Online Web Library)
- Re: Teaching Regular Expression Pattern Matching
- Perl 5 Optimizing Compiler
- Re: cannot modify LINUX env vars
- Syntax explanation required (perldoc -q duplicate)
- Avoid string eval and symbolic references (advice from merlyn and MJD)
- older version
- General Advice from MJD
- MJD on fish
In Memoriam
- Iain Campbell Truskett ("Spoon"/"Koschei") RIP 2003-12-29 (Koschei/spoon)
- On the shoulders of giants... Nick Ing-Simmons Deceased (Perl Foundation)
- So long its been good to know you (VSarkiss)
- Sad news (blazar)
- Ivor Williams (rinceWind) (rinceWind)
- Sad news (Almut) (almut)
- Sad news (Dr Randy Kobes) (randyk)
- RIP, Tad McClellan
- Bill Harp massive heart attack, currently in ICU, prognosis not good
- Sad News: Brian McCauley (4th Feb 1967 - 8th May 2015)
- Hermetic (everything2)
- DrForr is no longer with us (DrForr) (Jeff Goff)
- cider (Steven Loren Fountain)
- nobull (Brian McCauley)
- duff (Jonathan Scott Duff)
- kentnl (Kiwi Kent Fredric - not prolific at PM but very prolific in the Open Source world and on CPAN)
- Sad News: David H Adler (DHA) has passed away
Perl Monks Libraries
- Discipulus's library by Discipulus
- Discipulus (lots of links)
- kennethk (lots of links)
- roboticus (lots of links)
- blokhead (applied discrete math, algorithms, computability & complexity)
- AppleFritter (Game of Life guru (see his responses to High Performance Game of Life), noticed his home node has lots of useful Perl links)