Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Exercism

Perl

via Exercism

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
Perl v5 is a high-level general purpose programming language invented by Larry Wall and first released in 1987. It is an eclectic interpreted, procedural, loosely typed language. Its popularity peaked with the rise of the World Wide Web, though it remains widely used in Quality Assurance, IT infrastructure automation, text processing, bioinformatics and web application development, just to name a few areas. It is highly flexible, but this flexibility can have a follow-on maintenance cost.

Syllabus

  • Hello World
    • Exercism's classic introductory exercise. Just say "Hello, World!".
  • Lasagna
    • Learn about the basics of Perl by following a lasagna recipe.
  • Language List
    • Learn about arrays and lists in Perl by working with a collection of languages.
  • High Score Board
    • Learn about hashes in Perl by modifying a scoreboard.
  • Inventory Management
    • Learn about references in Perl by modifying an inventory of materials.
  • Booking up for Beauty
    • Learn about importing and exporting modules in Perl by building an appointment scheduler for a beauty salon.
  • Accumulate
    • Implement the `accumulate` operation, which, given a collection and an operation to perform on each element of the collection, returns a new collection containing the result of applying that operation to each element of the input collection.
  • Acronym
    • Convert a long phrase to its acronym.
  • All Your Base
    • Convert a number, represented as a sequence of digits in one base, to any other base.
  • Allergies
    • Given a person's allergy score, determine whether or not they're allergic to a given item, and their full list of allergies.
  • Anagram
    • Given a word and a list of possible anagrams, select the correct sublist.
  • Armstrong Numbers
    • Determine if a number is an Armstrong number.
  • Atbash Cipher
    • Create an implementation of the Atbash cipher, an ancient encryption system created in the Middle East.
  • Binary Search
    • Implement a binary search algorithm.
  • Binary Search Tree
    • Insert and search for numbers in a binary tree.
  • Bob
    • Bob is a lackadaisical teenager. In conversation, his responses are very limited.
  • Circular Buffer
    • A data structure that uses a single, fixed-size buffer as if it were connected end-to-end.
  • Clock
    • Implement a clock that handles times without dates.
  • Collatz Conjecture
    • Calculate the number of steps to reach 1 using the Collatz conjecture.
  • Crypto Square
    • Implement the classic method for composing secret messages called a square code.
  • Custom Set
    • Create a custom set type.
  • Difference of Squares
    • Find the difference between the square of the sum and the sum of the squares of the first N natural numbers.
  • D&D Character
    • Randomly generate Dungeons & Dragons characters.
  • Eliud's Eggs
    • Help Eliud count the number of eggs in her chicken coop by counting the number of 1 bits in a binary representation.
  • ETL
    • Change the data format for scoring a game to more easily add other languages.
  • Food Chain
    • Generate the lyrics of the song 'I Know an Old Lady Who Swallowed a Fly'.
  • Gigasecond
    • Given a moment, determine the moment that would be after a gigasecond has passed.
  • Grade School
    • Given students' names along with the grade that they are in, create a roster for the school.
  • Grains
    • Calculate the number of grains of wheat on a chessboard given that the number on each square doubles.
  • Hamming
    • Calculate the Hamming distance between two DNA strands.
  • House
    • Output the nursery rhyme 'This is the House that Jack Built'.
  • Isogram
    • Determine if a word or phrase is an isogram.
  • Kindergarten Garden
    • Given a diagram, determine which plants each child in the kindergarten class is responsible for.
  • Largest Series Product
    • Given a string of digits, calculate the largest product for a contiguous substring of digits of length n.
  • Leap
    • Determine whether a given year is a leap year.
  • List Ops
    • Implement basic list operations.
  • Luhn
    • Given a number determine whether or not it is valid per the Luhn formula.
  • Matching Brackets
    • Make sure the brackets and braces all match.
  • Matrix
    • Given a string representing a matrix of numbers, return the rows and columns of that matrix.
  • Meetup
    • Calculate the date of meetups.
  • Minesweeper
    • Add the numbers to a minesweeper board.
  • Nucleotide Count
    • Given a DNA string, compute how many times each nucleotide occurs in the string.
  • OCR Numbers
    • Given a 3 x 4 grid of pipes, underscores, and spaces, determine which number is represented, or whether it is garbled.
  • Palindrome Products
    • Detect palindrome products in a given range.
  • Pangram
    • Determine if a sentence is a pangram.
  • Pascal's Triangle
    • Compute Pascal's triangle up to a given number of rows.
  • Phone Number
    • Clean up user-entered phone numbers so that they can be sent SMS messages.
  • Pig Latin
    • Implement a program that translates from English to Pig Latin.
  • Prime Factors
    • Compute the prime factors of a given natural number.
  • Proverb
    • For want of a horseshoe nail, a kingdom was lost, or so the saying goes. Output the full text of this proverbial rhyme.
  • Pythagorean Triplet
    • Given an integer N, find all Pythagorean triplets for which a + b + c = N.
  • Queen Attack
    • Given the position of two queens on a chess board, indicate whether or not they are positioned so that they can attack each other.
  • Raindrops
    • Convert a number into its corresponding raindrop sounds - Pling, Plang and Plong.
  • RNA Transcription
    • Given a DNA strand, return its RNA complement.
  • Robot Name
    • Manage robot factory settings.
  • Robot Simulator
    • Write a robot simulator.
  • Roman Numerals
    • Convert modern Arabic numbers into Roman numerals.
  • Run-Length Encoding
    • Implement run-length encoding and decoding.
  • Saddle Points
    • Detect saddle points in a matrix.
  • Say
    • Given a number from 0 to 999,999,999,999, spell out that number in English.
  • Scrabble Score
    • Given a word, compute the Scrabble score for that word.
  • Secret Handshake
    • Given a decimal number, convert it to the appropriate sequence of events for a secret handshake.
  • Series
    • Given a string of digits, output all the contiguous substrings of length `n` in that string.
  • Sieve
    • Use the Sieve of Eratosthenes to find all the primes from 2 up to a given number.
  • Simple Cipher
    • Implement the Vigenère cipher, a simple substitution cipher.
  • Space Age
    • Given an age in seconds, calculate how old someone is in terms of a given planet's solar years.
  • Spiral Matrix
    • Given the size, return a square matrix of numbers in spiral order.
  • Strain
    • Implement the `keep` and `discard` operation on collections.
  • Sublist
    • Write a function to determine if a list is a sublist of another list.
  • Sum of Multiples
    • Given a number, find the sum of all the multiples of particular numbers up to but not including that number.
  • Triangle
    • Determine if a triangle is equilateral, isosceles, or scalene.
  • Twelve Days
    • Output the lyrics to 'The Twelve Days of Christmas'.
  • Two Bucket
    • Given two buckets of different size, demonstrate how to measure an exact number of liters.
  • Two Fer
    • Create a sentence of the form "One for X, one for me.".
  • Word Count
    • Given a phrase, count the occurrences of each word in that phrase.
  • Wordy
    • Parse and evaluate simple math word problems returning the answer as an integer.
  • Yacht
    • Score a single throw of dice in the game Yacht.
  • Bottle Song
    • Produce the lyrics to the popular children's repetitive song: Ten Green Bottles.
  • Darts
    • Calculate the points scored in a single toss of a Darts game.
  • Micro Blog
    • Given an input string, truncate it to 5 characters.
  • Reverse String
    • Reverse a given string.
  • Rotational Cipher
    • Create an implementation of the rotational cipher, also sometimes called the Caesar cipher.
  • Knapsack
    • Given a knapsack that can only carry a certain weight, determine which items to put in the knapsack in order to maximize their combined value.
  • Affine Cipher
    • Create an implementation of the Affine cipher, an ancient encryption algorithm from the Middle East.

Reviews

Start your review of Perl

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.