1. Advanced Perl
  2. Perl References
    1. Uses cases for references
    2. References
    3. Array References
    4. Hash References
    5. Scalar references
    6. Subroutine references
    7. Passing values to a function
    8. Add two (or more) arrays
    9. Add two arrays
    10. Array References
    11. Process arrays without copying
    12. Scope of variables
    13. Reference counting
    14. More Reference Counting
    15. Process arrays without copying even the return values
    16. Debugging (pretty printing)
    17. Change values in a reference
    18. Exercise: double numbers
    19. Exercise: Add many arrays
    20. Exercise: Function to compare two hashes
    21. Solution: Double numbers
    22. Solution: Add many arrays
    23. Solution: Add many arrays
    24. Solution: Function to compare two hashes
    25. Anonymous Arrays
    26. Array of Arrays
    27. Array of Arrays (AoA)
    28. Many dimensional arrays
    29. Anonymous hashes
    30. Hash of Hashes (HoH)
    31. More complex data structures
    32. Memory leak with cross references
    33. Memory leak with cross references - weaken
    34. Read CSV file
    35. Exercise: read in an ini file
    36. Exercise: improve the csv reader
    37. Solution: Read ini file
    38. Solution: improve the csv reader
    39. autovivification
    40. Scalar references in Getopt::Long
    41. Anonymous subroutines
    42. Uses of Subroutine references
    43. Exercise: DNA Sequence Analyzer
    44. Solution: DNA Sequence Analyzer
    45. Exercise: DNA Sequence Analyzer with callback
    46. Solution: DNA Sequence Analyzer with callback
    47. Exercise: DNA Sequence Analyzer with shortcut
    48. Solution: DNA Sequence Analyzer with shortcut
    49. Dispatch Table
    50. Dispatch Table using symbolic references
    51. The ref() function
    52. Copy a data structure
    53. Deep copy
    54. Deep copy - Storable dclone
    55. Serialization
    56. Data::Dumper
    57. Data::Dumper both dump and restore
    58. Storable
    59. Storable in memory freezing
    60. YAML
    61. YAML in one file
    62. JSON in one file
    63. Main uses of references
    64. Exercise: save ini and csv as YAML
    65. Exercise: Create a cache for NetSlow
    66. Exercise: create a function that generates numbers multipliers
    67. Solution: save ini and csv as YAML
    68. Solution: Create a cache for NetSlow
    69. Solution: NetSlow cache with timeout
    70. Resources
  3. Processes and signals
    1. Signals and the kill function
    2. Catch signals
    3. Exercise: Catch ctrl-c and ask continue or terminate?
    4. Solution: Catch ctrl-c and ask
    5. Graceful termination of process
  4. Advanced slides
    1. Always use strict and warnings
    2. Avoid warnings
    3. Turn off warnings selectively and in a small scope
    4. Catch and log warnings
    5. splain and use diagnostics
    6. Fatal warnings
    7. Logging Exceptions
    8. Always open files in the new way
    9. Array slices
    10. Array slices on the fly
    11. Hash slices
    12. Hash slices in assignment
    13. splice
    14. LIST and SCALAR context
    15. wantarray
    16. wantarray example
    17. Slow sorting
    18. Speed up sorting
    19. Schwartzian transformation
    20. Compilation phases: BEGIN, CHECK, INIT, END
    21. AUTOLOAD
    22. Static variable
    23. Exercise: create counter
    24. Solution: create counter
    25. Saved variable: local
    26. autodie
    27. Modern::Perl
    28. Perl::Critic
    29. Perl::Tidy
    30. caller
    31. Log::Dispatch
    32. Log::Log4perl easy
    33. Exercise: Log::Dispatch
    34. Solution Log::Dispatch
  5. Functional Programming in Perl
    1. Programming Paradigms
    2. Functional programming
    3. grep
    4. grep to filter files based on modification date
    5. Imitating the Unix/Linux grep command in Perl
    6. map
    7. Use map to filter values
    8. Map to add more elements
    9. Use map to filter and enrich
    10. Create a hash from an array using map
    11. Unique values
    12. Unique values - improved
    13. Unique values using grep
    14. Uniq with List::MoreUtils
    15. Closures
  6. Perl Libraries and Modules
    1. Lack of code reuse
    2. Perl library (perl4 style)
    3. Problems with Libraries
    4. Prefix everything with unique name
    5. Namespaces
    6. Solution with namespace
    7. Modules
    8. Packages, @INC and Namespace hierarchy
    9. use, require and import
    10. Export - Import
    11. Restrict the import
    12. On demand Import
    13. Importing
    14. Modules - behind the scene
    15. Tools for packaging and distribution
    16. Packaging modules
    17. Makefile.PL of ExtUtils::MakeMaker
    18. Makefile.PL of Module::Install
    19. Build.PL of Module::Build
    20. Changes and README
    21. MANIFEST and MANIFEST.SKIP
    22. A script
    23. A module
    24. Packaging with Makefile.PL
    25. Packaging with Build.PL
    26. A test file
    27. Writing Tests
    28. Exercises: Multiply numbers
    29. Solution: Multiply numbers
    30. Overview
  7. Error Handling
    1. Returning error status or throwing exception?
    2. eval block
    3. Exception handling with Try::Tiny
    4. Carp
    5. Carp::Clan
    6. The problem with die and croak
    7. Exception::Class
    8. Processing exceptions
    9. Exercise
    10. Solution
    11. Solution
  8. Introduction to Moose
    1. Moose Constructor
    2. Test Moose Constructor
    3. Moose Attribute
    4. Test Moose Attribute
    5. Moose Attribute Type
    6. Test Moose Attribute Type
    7. Moose Attribute Type class
    8. Test Moose Attribute Type class
    9. Moose Attribute - create your own subtype
    10. Test Moose Attribute - create your own subtype
    11. Moose Attribute - coercion
    12. Test Moose Attribute - coercion
    13. Moose Enumeration
    14. Moose Attributes Overview
    15. Inheritance
    16. Testing Inheritance
    17. MooseX::StrictConstructor
    18. Testing Strict attributes
    19. Encapsulation
    20. Class data
    21. Special actions during object construction
    22. Singleton in Moose
    23. Destructor in Moose
  9. Running subprocess
    1. Possibilities
  10. Prima
    1. Prima Hello World
  11. wxPerl - wxWidgets for Perl
    1. wxPerl - Hello World
  12. Microsoft Windows
    1. Win32 examples
  13. PSGI
    1. PSGI Cookbook
  14. Parallel processing
    1. Types of problems
    2. Types of solutions
    3. Tasks
    4. Measurements on 32 core
    5. Measurements on 4 core
    6. The Hardware
    7. Installations
    8. Fork
    9. Fork with functions details
    10. Fork random and seed
    11. Fork without functions
    12. Fork details
    13. Fork many
    14. Parent process ID
    15. pstree
    16. htop
    17. Active non-blocking waiting with waitpid
    18. Non-blocking waiting with waitpid - multiple forks
    19. Non-blocking waiting, rerun on failure
    20. Functions to be speed up
    21. Counter process
    22. Forked counter process
    23. Prepare CSV files
    24. Process CSV files
    25. Use Parallel::ForkManager
    26. Return values using Parallel::ForkManager
    27. Forked process CSV files
    28. HTTP GET
    29. Forked HTTP requests
    30. Exercise: Process Excel files
    31. Exercise: Web crawler
    32. MCE - Many-Core Engine
    33. MCE - map running in parallel
    34. MCE - map with init
    35. other modules
  15. Database access using Perl DBI
    1. Architecture of a DBI Application
    2. Create Sample Database
    3. Connect to database
    4. SELECT with one result
    5. SELECT with more results
    6. SELECT, prepare with placeholders
    7. SELECT, using hashref
    8. INSERT
    9. UPDATE
  16. Advanced Database access using Perl DBI
    1. Data integrity
    2. Transactions
    3. Sample database creation
    4. Disconnect from the database
    5. Attributes
    6. Error handling
    7. Debugging (Trace levels)
  17. Database access using DBIx::Class
    1. DBIx::Class
    2. Create Sample Database
  18. Internet Explorer
    1. Win32::IE::Mechanize
    2. Accessing Google
    3. Examples
  19. X-Windows
    1. X11
    2. X11 Tools
    3. X11::GUITest
    4. LDTP - Linux Desktop Testing Project
    5. Manual steps
    6. X11: Launch the application
    7. Let's see the coordinates
    8. Where is this top left corner ?
    9. And let's see the rest of the coordinates
    10. Smooth on the edges
    11. Closing the window
    12. Placing the cursor on one of the buttons and clicking on it
    13. So let's do all the calculations
    14. Fetch the list of Child Windows
    15. Locate the Child Windows
    16. Using the keyboard
    17. Separate the keystrokes
    18. Full solution for xcalc