I also think this list is really nice, with its wide variety of aspects of perl tricks and specificities :). Indicating how critical each piece of knowledge is might be useful though? Mastering context isn't required but knowing the basics can help a lot. You can get quite good with perl without having to understand BEGIN or even the notion of compile/run time, so I was kind of surprised that this was the first question.
Where can I look this up?
Best question. Knowing what kind of information you can get out of the doc, like
perlop (like operator precedence, but also all the stuff on the quote like operators),
perlvar (like knowing that sometimes you change the behaviour of a function by changing a var, rather than with the parameters) should be high on the list of required knowledge.
Booleans:
There are more than four? Actually this made me realize that I didn't know the answer to that correctly, I thought that any string that "looks like a number" and is equal to 0 was false. But:
perl -E "say for grep { $_ } qw<0 00 0.0>"
00
0.0
This means that the four FALSE I can think of are "", 0, "0" and undef. I suppose the empty list might count? (Edit: actually there are two numbers that are false, int 0 and real 0.0, so I guess that's up to 6 false values?)
Also I'm not sure about the other question, is this about how perl tests truth internally, or are you expecting an answer like
!!(FalseOrWrong)?
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.