Programming basics introduction to PERL Mats Pettersson Dept
Programming basics & introduction to PERL Mats Pettersson Dept. of Animal Breeding and Genetics www. hgen. slu. se
Some jargon: Source code – plain text files with commands Language – collection of definition Compiler – “translator” from text to binary files Interpreter – executes a source file line by line Algorithm – a “recipe” to get from input to output Variable – data “container” Assignment – putting data into a variable Dept. of Animal Breeding and Genetics www. hgen. slu. se
Algorithms Define the task Break it down to small steps Find a way to achieve each step - implementation Dept. of Animal Breeding and Genetics www. hgen. slu. se
Fundamental operations Reading input Manipulating data - Math - Data reshuffling - Flow control Writing output Dept. of Animal Breeding and Genetics www. hgen. slu. se
Control statements Conditional statements - if – else Loops - for – foreach – while Dept. of Animal Breeding and Genetics www. hgen. slu. se
Data manipulation Extracting subsets of data - pattern matching Data structures - connecting different types of data - representing matrices or tables Dept. of Animal Breeding and Genetics www. hgen. slu. se
The PERL language Primarily for text manipulation - Deals very well with large files High-level language - Very concise scripts - Readability is an issue Large amounts of existing modules - Bio. Perl Dept. of Animal Breeding and Genetics www. hgen. slu. se
PERL data types Scalar($) Single value variable Array(@) Ordered collection of values (“row”) Hash(%) Unordered, but names, collection of values Dept. of Animal Breeding and Genetics www. hgen. slu. se
PERL data types $scalar = 5 @array = (1, 2, 3) $array[0] %hash = (“key 1” => 3, “key 2” => 4) $hash{“key 1”} Dept. of Animal Breeding and Genetics www. hgen. slu. se
PERL I/O operations Open - modes (>/<) - file handle Read - <> operator Close Dept. of Animal Breeding and Genetics www. hgen. slu. se
PERL I/O operations open HANDLE “>filename” print HANDLE “Hello world!” close HANDLE Dept. of Animal Breeding and Genetics www. hgen. slu. se
PERL string manipulation Split - creates an array from a string Join - reverse split Chomp - removes trailing newline symbol (n) Dept. of Animal Breeding and Genetics www. hgen. slu. se
PERL string matching Regular expressions - generalized string patterns - character groups [] - special symbols (^, $, . , , +, ? , /) The =~ operator - “binds” the string of interest to the pattern - modifiers (s, g) Dept. of Animal Breeding and Genetics www. hgen. slu. se
PERL references Scalar that “point” to arrays or hashes $aref = @array $href = @hash $aref = [1, 2, 3] $href = {“key 1” => 3, “key 2” => 4} Useful for 2 D structures Dept. of Animal Breeding and Genetics www. hgen. slu. se
PERL references Dereferencing @{$aref} %{$href} $aref->[0] $href->{“key 1”} Dept. of Animal Breeding and Genetics www. hgen. slu. se
PERL oddities The default variable ($_) - stores latest result - default argument for methods Implicit declaration - variable type deduced from context Very flexible syntax - hard to read - mistakes happen Dept. of Animal Breeding and Genetics www. hgen. slu. se
PERL tutorials http: //perldoc. perl. org/index-tutorials. html http: //www. bioperl. org/wiki/HOWTOs Dept. of Animal Breeding and Genetics www. hgen. slu. se
Bio. Perl A larger collection of modules intended for use in bioinformatics - Sequence retrieval - Database searches - Alignment Dept. of Animal Breeding and Genetics www. hgen. slu. se
- Slides: 18