Note that there are some explanatory texts on larger screens.

plurals
  1. POHidden features of Perl?
    primarykey
    data
    text
    <p>What are some really useful but esoteric language features in Perl that you've actually been able to employ to do useful work?</p> <p>Guidelines:</p> <ul> <li>Try to limit answers to the Perl core and not CPAN</li> <li>Please give an example and a short description</li> </ul> <hr> <h2>Hidden Features also found in other languages' Hidden Features:</h2> <p>(These are all from <a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#162257">Corion's answer</a>)</p> <ul> <li><a href="https://stackoverflow.com/questions/132241/hidden-features-of-c#">C</a> <ul> <li>Duff's Device</li> <li>Portability and Standardness</li> </ul></li> <li><a href="https://stackoverflow.com/questions/9033/hidden-features-of-c">C#</a> <ul> <li>Quotes for whitespace delimited lists and strings</li> <li>Aliasable namespaces</li> </ul></li> <li><a href="https://stackoverflow.com/questions/15496/hidden-features-of-java">Java</a> <ul> <li>Static Initalizers</li> </ul></li> <li><a href="https://stackoverflow.com/questions/61088/hidden-features-of-javascript">JavaScript</a> <ul> <li>Functions are First Class citizens</li> <li>Block scope and closure</li> <li>Calling methods and accessors indirectly through a variable</li> </ul></li> <li><a href="https://stackoverflow.com/questions/63998/hidden-features-of-ruby">Ruby</a> <ul> <li>Defining methods through code</li> </ul></li> <li><a href="https://stackoverflow.com/questions/61401/hidden-features-of-php">PHP</a> <ul> <li>Pervasive online documentation</li> <li>Magic methods</li> <li>Symbolic references</li> </ul></li> <li><a href="https://stackoverflow.com/questions/101268/hidden-features-of-python">Python</a> <ul> <li>One line value swapping</li> <li>Ability to replace even core functions with your own functionality</li> </ul></li> </ul> <h2>Other Hidden Features:</h2> <p>Operators:</p> <ul> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#162094">The bool quasi-operator</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#162058">The flip-flop operator</a> <ul> <li>Also used for <a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#205627">list construction</a></li> </ul></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#162004">The <code>++</code> and unary <code>-</code> operators work on strings</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#162075">The repetition operator</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#161943">The spaceship operator</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#162239">The || operator (and // operator) to select from a set of choices</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#162152">The diamond operator</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#162249">Special cases of the <code>m//</code> operator</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#162060">The tilde-tilde "operator"</a></li> </ul> <p>Quoting constructs:</p> <ul> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#163416">The qw operator</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#162094">Letters can be used as quote delimiters in q{}-like constructs</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#163374">Quoting mechanisms</a></li> </ul> <p>Syntax and Names:</p> <ul> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#162094">There can be a space after a sigil</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#162094">You can give subs numeric names with symbolic references</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#163416">Legal trailing commas</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#162601">Grouped Integer Literals</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#168925">hash slices</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#195254">Populating keys of a hash from an array</a></li> </ul> <p>Modules, Pragmas, and command-line options:</p> <ul> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#163440">use strict and use warnings</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#163440">Taint checking</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#162085">Esoteric use of -n and -p</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#163541">CPAN</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#162601"><code>overload::constant</code></a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#164255">IO::Handle module</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#163725">Safe compartments</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#310083">Attributes</a></li> </ul> <p>Variables:</p> <ul> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#162357">Autovivification</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#161985">The <code>$[</code> variable</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#168947">tie</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#172118">Dynamic Scoping</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#205627">Variable swapping with a single statement</a></li> </ul> <p>Loops and flow control:</p> <ul> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#163440">Magic goto</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#163481"><code>for</code> on a single variable</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#169592">continue clause</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#205104">Desperation mode</a></li> </ul> <p>Regular expressions:</p> <ul> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#162565">The <code>\G</code> anchor</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#161976"><code>(?{})</code> and '(??{})` in regexes</a></li> </ul> <p>Other features:</p> <ul> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#163440">The debugger</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#162206">Special code blocks such as BEGIN, CHECK, and END</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#163700">The <code>DATA</code> block</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#162601">New Block Operations</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#162601">Source Filters</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#162601">Signal Hooks</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#167309">map</a> (<a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#167809">twice</a>)</li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#162842">Wrapping built-in functions</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl/189883#189883">The <code>eof</code> function</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#194796">The <code>dbmopen</code> function</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#205104">Turning warnings into errors</a></li> </ul> <p>Other tricks, and meta-answers:</p> <ul> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#163532">cat files, decompressing gzips if needed</a></li> <li><a href="https://stackoverflow.com/questions/161872/hidden-features-of-perl#162271">Perl Tips</a></li> </ul> <hr> <p><strong>See Also:</strong></p> <ul> <li><a href="https://stackoverflow.com/questions/132241/hidden-features-of-c">Hidden features of C</a></li> <li><a href="https://stackoverflow.com/questions/9033/hidden-features-of-c">Hidden features of C#</a></li> <li><a href="https://stackoverflow.com/questions/75538/hidden-features-of-c">Hidden features of C++</a></li> <li><a href="https://stackoverflow.com/questions/15496/hidden-features-of-java">Hidden features of Java</a></li> <li><a href="https://stackoverflow.com/questions/61088/hidden-features-of-javascript">Hidden features of JavaScript</a></li> <li><a href="https://stackoverflow.com/questions/63998/hidden-features-of-ruby">Hidden features of Ruby</a></li> <li><a href="https://stackoverflow.com/questions/61401/hidden-features-of-php">Hidden features of PHP</a></li> <li><a href="https://stackoverflow.com/questions/101268/hidden-features-of-python">Hidden features of Python</a></li> <li><a href="https://stackoverflow.com/questions/2493996/hidden-features-of-clojure">Hidden features of Clojure</a></li> </ul>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload