skip to primary navigationskip to content

An introduction to solving biological problems with Perl



This course provides an introduction to programming using Perl and it is aimed at those new to programming. By the end of this course, attendees should be able to write simple Perl programs to handle biological data and to understand more complex Perl programs written by others.

During this course you will learn the basics of the Perl programming language, including how to store data in Perl’s standard data structures such as arrays and hashes, and how to process data using loops, functions, and many of Perl’s built in operators. You will learn how to write and run your own Perl scripts and how to pass options and files to them. The course also covers sorting, regular expressions, references and multi-dimensional data structures.



Martin Hunt, EMBL-EBI

Mareike Herzog, Sanger Institute

Fabio Puddu, University of Cambridge


Audience and Prerequisites

  • No prior programming experience is required, but those attending should be able to use a plain text editor
  • The course is delivered in a Unix environment. A very basic knowledge of UNIX would be an advantage, but nothing will be assumed and extremely little will be required
  • Graduate students, Postdocs and Staff members from the University of Cambridge, Affiliated Institutions and other external Institutions or individuals


Syllabus, Tools and Resources

Aim of this course is:

  • To enable bench scientists with no previous programming background to
    write simple PERL scripts and to understand and edit slightly more
    complex scripts 


Learning Objectives

After this course you should be able to:

  • Write simple Perl programs to process biological data
  • Understand Perl programs written by others
  • Use core Perl modules in your own programs 
  • Know how to develop your skills in Perl after the course



Book Here

Course materials

Course Exercises

Perl Documentation

Perl Website

Strawberry Perl for Windows



Day 1
Task Set 1 Perl script skeleton
Task Set 2 Values and Variables
Task Set 3 Arrays
Task Set 4 Hashes
Task Set 5 Loops
Task Set 6 'If' Statements and Loop Controls
Task Set 7 Introduction to Functions
Task Set 8 String Functions and Operators
Task Set 9 Array and Hash Operators
Day 2
Task Set 10 Core functions, modules and subroutines
Task Set 11 User/Command-line input
Task Set 12 Sanity checks and testing
Task Set 13 Files and file handles
Task Set 14 Sorting with arrays and hashes
Task Set 15 Regular expressions
Task Set 16

References and multidimensional data structures

Filed under: