These are earlier recordings and they are a bit noisy, sorry for that.

You can watch the episodes on YouTube, or on this site. Some of the pages here have extra text.

Table of Contents

1. Introduction

  1. Welcome and installation
  2. Editors, IDEs
  3. Hello World
  4. Safety net (use strict; use warnings;)
  5. Debugging
  6. Comments
  7. Documentation of Perl
  8. POD - Plain Old Documentation
  9. Perl on the command line
  10. Exercise: Hello World
  11. Solution: Hello World (part 1)
  12. Solution: Hello World (part 2)

2. Scalars

  1. Scalar values and variables
  2. Common Errors
  3. Variable interpolation - User Input and Output - chomp
  4. Numerical Operators
  5. String Operators
  6. If statement
  7. Comparison Operators
  8. String to Number Conversion
  9. Compare Values
  10. undef
  11. Logical Operators
  12. True and False values
  13. Short circuit
  14. String functions: index
  15. Substr
  16. String in Double quotes
  17. String in Single quotes
  18. Scope of Variables
  19. rand() and int()
  20. Here documents
  21. Exercise: rectangular
  22. Solution: Area of rectangular
  23. Solution: Area prompt and warn if values are less than 0
  24. Solution: Concatenation
  25. Exercise: Number guessing game
  26. Solution: Number guessing game

3. Files

  1. die, warn, exit
  2. Open File
  3. Open File All
  4. Open File with Error Handling
  5. open or die
  6. No such file
  7. Read one line
  8. While loop
  9. Read file line by line
  10. Write to file
  11. Sum numbers in a file
  12. Debug the sum numbers script
  13. Analyze Apache log file
  14. Old Style Open
  15. Exercise: Add more statistics
  16. Solution: Add more statistics
  17. Exercise: Write report to file
  18. Solution: Write report to file

4. Lists and Arrays

  1. Lists in Perl
  2. List Assignment
  3. Foreach Loop Over List
  4. Creating and Array
  5. Array Assignment
  6. Exercise: more statistics
  7. Solution: more statistics (placeholder)
  8. Array indexes
  9. Array indexes (screencast)
  10. Looks like number
  11. Command line parameters
  12. Command line parameters (screencast)
  13. Processing command line using Getopt::Long
  14. Processing command line using Getopt::Long (screencast)
  15. Process CSV file
  16. Process CSV file - short version
  17. One-liner - Sum of values in CSV file
  18. Process CSV file - using Text::CSV_XS
  19. Join
  20. Exercise: improve the color selector
  21. Solution: improve the color selector
  22. Solution: improve the color selector - check input
  23. Solution: improve the color selector - force
  24. Solution: improve the color selector - colors.txt
  25. Solution: improve the color selector - --filename
  26. Exercise: improve the number guessing game
  27. Solution: improve the number guessing game - multiple guesses
  28. Solution: improve the number guessing game - exit
  29. Solution: improve the number guessing game - s for show
  30. Solution: improve the number guessing game - n for next game
  31. Solution: improve the number guessing game - d for debug mode
  32. Solution: improve the number guessing game - m for move mode

5. Advanced Arrays

  1. The Year of 19100
  2. Array in Context
  3. Context Sensitivity
  4. Filehandle in SCALAR and LIST context
  5. Slurp
  6. Pop and Push
  7. Loop controls: next and last
  8. shift and unshift
  9. shift
  10. reverse
  11. sort
  12. Ternary operator
  13. Count Digits
  14. Exercise: Display unique rows of a file
  15. Exercise: sort mixed string

6. Functions and Subroutines

  1. Functions and Subroutines
  2. Defining Subroutines
  3. Exercise: Number guessing in sub

7. Hashes

  1. A hash and its uses
  2. Creating a hash
  3. Creating a hash from an array
  4. Hash in scalar context
  5. Fetching data from hash
  6. Exists and Delete in hash
  7. Counting words in a file
  8. Dumping hash
  9. Exercise: parse HTTP values
  10. Solution: parse HTTP values
  11. Exercise: Improve color selector
  12. Solution: Improve color selector
  13. Exercise: Sort scores
  14. Solution: Sort scores
  15. Exercise: Improve Apache log analyzer
  16. Solution: Improve Apache log analyzer
  17. Exercise: Parse variable width fields
  18. Solution: Parse variable width fields

8. Regular Expressions - part 1

  1. Regexes
  2. Where can I use regexes
  3. Simple use of regex
  4. Finding a string in a file
  5. Single character match
  6. Match any character
  7. Character classes
  8. Negated character class
  9. Optional characters
  10. Any Number of any Characters
  11. Quantifiers
  12. Quantifiers on Character classes
  13. Exercise: Regexes 1
  14. Solution: Regexes 1
  15. Solution: Regexes 2
  16. Solution: Regexes 3

9. Regular Expressions - part 2

  1. Regex Alternatives
  2. Regex Capturing
  3. Regex Anchors
  4. More about Character classes
  5. Special character classes
  6. Exercise: Match numbers with regex
  7. Solution: Match numbers with regex
  8. Exercise: hexa, octal, binary
  9. Solution: hexa, octal, binary
  10. Exercise: Roman numbers

10. Regular Expressions - part 3

  1. m/ for matching regexes
  2. Case insensitive regexes using /i
  3. multiple lines in regexes using /m
  4. Single line regexes using /s
  5. /x modifier for verbose regexes
  6. Substitution
  7. Global substitution with regexes
  8. Greedy regex quantifiers
  9. Minimal Regex Matching
  10. trim
  11. Fixing assembly with Perl
  12. split with regex
  13. Fixing dates using Regexes
  14. Exercise split HTTP using Regexes
  15. Solution: split HTTP using Regexes
  16. Exercise: split path - filename/dirname
  17. Solution: split path - filename/dirname
  18. Exercise: sort SNMP numbers
  19. Solution: sort SNMP numbers
  20. Exercise: parse hours log file and create time report
  21. Solution: parse hours log file and create time report (placeholder)
  22. Exercise: parse INI file
  23. Solution: parse INI file (placeholder)
  24. Exercise: parse Perl file
  25. Solution parse Perl file (placeholder)

11. Shell to Perl

  1. shell -x
  2. Running external programs
  3. Unix and DOS commands
  4. file globbing
  5. rename files
  6. directory handle
  7. File::HomeDir
  8. more Unix commands
  9. File::Spec
  10. File::Find

12. CPAN

  1. Using procedural module
  2. Using object oriented module
  3. Changing @INC
  4. Changing @INC relative path
  5. What is CPAN
  6. Some interesting CPAN modules
  7. Installing modules from the OS vendor
  8. Installing Perl modules with cpan
  9. search.cpan.org
  10. CPAN Testers and CPAN Ratings

13. Applications

  1. Create Linux user account
  2. Diskspace usage: df in Perl
  3. Reporting diskspace usage on mail server
  4. disk usage: du
  5. Send email with attachments
  6. Reading Excel file
  7. read fixed-width records
  8. Processing config file