Challenges

1. Count vowels in 'Linguam refrenans temperet ne litis horror insonet, visum fovendo'  

2. Average of each student's math scores ('Sebastian', scores 45, 60, 72; 'Daniel', scores 55, 65, 70; 'Florence', scores 71, 79, 78)  


3. Which sentence has the maximum number of words? 'The sun is very bright.', 'There are only five students here today.', 'I’d love that.' , 'I would like to be there'  


4. Typo-generator IV: wrong letter when typing 'Reinier'  


5. Typo-generator V: extra letter when typing 'Reinier'  


'Typo-generator I-III' can be found at the end of Part 1.

6. Find the common numbers of two arrays, using a function and references


7. Create @array_of_arrays and store references to @array1, @array2, and @array3 within it. Each array consists of three numbers. Print the third number of the second array.  


8. Create an array and store references to two anonymous arrays within it. Each array consists of three names. Print the third name of the first array and print all names.  


9. Store and print information about employees in a company. Each employee has a unique employee ID, and for each employee, we want to store their name, department, and salary. You should use a hash of hashes to represent this data structure.  


10. Store and print information about three books (title, author, genre, year of publication). Use push to add data for three books to the array of hashes.  


11. Store and print information about students in a school. Each student has a name and a list of subjects they are studying. Use a hash of arrays.  


12. Read all lines under __DATA__ sequentially. All lines contains 3 semicolon separated integers. Use 'split' and 'push' to add them as references to anonymous arrays into @matrix. Print @matrix.  


13. Print the length of a hash that has some key value pairs.  


14. Add an element to the hash of the previous challenge and print the new length.  


15. Remove the second element from the hash of the previous challenge and print the new length.  


16. Pass a hash to a function and print its keys and values in sorted order.  


17. Pass a hash as reference to a function and print its keys and values in sorted order.  


18. Call a function by reference. Use the previous challenge.  


19. Pass to a function: an integer, a reference to an array, a hash and a variable. Print their values.  


20. Pass to a function: an integer, an array, a reference to a hash and a variable. Print their values.  


21. Read three names: a first name and family name, separated by one space (e.g. Paul Auster). Print family name comma first name (e.g. Auster, Paul) in sorted order.  


22. Variant of challenge 21. Read three names: a first name, second name or initials (optional) and family name, separated by one space (e.g. Jean Paul Sartre). Print family name comma first name, second name/initial (e.g. Sarte, Jean Paul) in sorted order.  


23. Write a program that has to be invoked with one argument. The program converses a month to its corresponding number (1-12). Print the result.  


24. Variant of challenge 23. Modify it with minimal changes. Write a program that has to be invoked with one argument. The program converses the number (1-12) to the correponding month name. Print the result.