Perl - a quick reminder and revision. Test yourself!
At the start of the second day of my second Perl course this week (yes, really!!) I put up a quick revision of what I had covered on the first day for my not - really - new - to - Perl group. How many of these things are you familiar with?
Comments ...
Don't forget to comment your code!
- # to end of line
- after __END__ on the end of the file
- "Documentation comments" via POD ... =head (etc) to =cut
Variables ...
$ - scalar. Integer, Float, String ... Reference, Regex
@ - list. Indexed ordered collection of scalars []
% - hash. Keyed unordered collection of scalars {}
& - code. a.k.a. a "sub"
- file handle [no special start character)
* - typeglob - one of each of the above
Strings ...
" and ' (operator and literal). operator expanding $ @ \
Also qq and q, and "here documents"
Testing ...
== numeric equality !=
eq string equality ne
=~ string match !~
Regular Expressions contain ...
- literals. A 3 @ \+ \.
- char groups [A-Z] [^aeiou] . \s \d \w \W \D \S
- counts * ? + {2,6}
- anchors ^ $ \b
- captures ()
- alternation |
/.../ m!...! m/.../
Special Variables...
$& - the bit that matched
@_ - parameters to a sub
$1 - first interesting bit ...
@ARGV - incoming parameters to program
%ENV - environment variables
@INC - where modules may load from
%INC - where modules have been loaded from
$_ - default input and pattern matching space
Conditionals ...
if, unless, and, or, &&, ||, ? ... :
Loops ...
while, for, foreach, goto (yuk!), do while, until
last, next, redo
On a public Perl course, I would expect to take much longer than just one day to cover this little lot!
(written 2011-08-26)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
P251 - Perl Review [2242] So what is this thing called Perl that I keep harping on about? - (2009-06-15)
[3007] Setting up a matrix of data (2D array) for processing in your program - (2010-10-21)
[3042] Least Common Ancestor - what is it, and a Least Common Ancestor algorithm implemented in Perl - (2010-11-11)
[3430] Sigils - the characters on the start of variable names in Perl, Ruby and Fortran - (2011-09-10)
P050 - Perl - General [116] The next generation of programmer - (2004-11-13)
[400] New in the shops - (2005-08-01)
[743] How to debug a Perl program - (2006-06-04)
[1750] Glorious (?) 12th August - what a Pe(a)rl! - (2008-08-12)
[1897] Keeping on an even keel - (2008-11-21)
[2228] Where do I start when writing a program? - (2009-06-11)
[2374] Lead characters on Perl variable names - (2009-08-24)
[2504] Learning to program in ... - (2009-11-15)
[2736] Perl Course FAQ - (2010-04-23)
[2783] The Perl Survey - (2010-05-27)
[2825] Perl course - is it tailored to Linux, or Microsoft Windows? - (2010-06-25)
[2971] Should the public sector compete with businesses? and other deep questions - (2010-09-26)
[3093] How many toilet rolls - hotel inventory and useage - (2010-12-18)
[3322] How much has Perl (and other languages) changed? - (2011-06-10)
[3332] DNA to Amino Acid - a sample Perl script - (2011-06-24)
[3823] Know Python or PHP? Want to learn Perl too? - (2012-07-31)
[3902] Shell - Grep - Sed - Awk - Perl - Python - which to use when? - (2012-10-22)
[3911] How well do you know Perl and / or Python? - (2012-11-04)
[4296] Polishing the Perl courses - updated training - (2014-09-17)
[4301] Perl - still a very effective language indeed for extracting and reporting - (2014-09-20)
Some other Articles
Single and double quotes strings in Perl - what is the difference?A review of the Summer Sunday extra trains on the TransWilts lineWhen variables behave differently - Tie in PerlJourney home by public transport for a Bank HolidayPerl - a quick reminder and revision. Test yourself!Not multidimentional arrays - but lists of lists. Much more flexible. Perl!Where do businessmen stay in Melksham?Buses on the Cambridge Guided BuswayLast chance this summer - Swindon and North Wiltshire to Weymouth by through trainThat spec is a kingfisher ...