[Courses] LinuxChix Perl Course Part 2

Alice Wood alice at schiffwood.demon.co.uk
Sat Mar 15 13:02:50 EST 2003


LinuxChix Perl Course Part 2: Scalar Data

Contents

1) Good programming guide
2) Scalar data
3) Exercises
4) Where to find out more...

            -----------------------------------

1) Good Programming Guide

comments
white space
-w switch
use strict

As beginners it is always a good idea to try and start off with good habits so 
that as we become more experienced, we are regularly building into a program 
pointers to help us when we have a problem. Good programs will be 
appropriately commented and have lots of white space (gaps between sections, 
and longer lines).

It is also possible to use tools that are built into Perl to help you spot 
potential problems. The first is an addition to the top line.

#!usr/bin/perl -w

The -w switch allows Perl to print warnings if the variables in programs are 
_probably_ not being used correctly, if there is a function infinitely deep 
in recursion or when it spots something suspicious in the program. There are 
many switches available for use in Perl. further information about these can 
be found on the Perlrun manpage.

use strict;

It is useful to put this in as the second line to a program (see below). 

#!usr/bin/perl -w
use strict;

This will enforce good programming rules throughout your program. For example, 
if you declare

my $suzy = 7;

then later do

$Suzy +=1;

Your mistake will be caught automatically.

            ----------------------------------

2) Scalar Data

There are four basic data types that Perl uses.
These are:
scalars - A single chunk of data
arrays - A bunch of scalars, indexed by a number
hashes - A bunch of scalars, indexed by another scalar known as a key
handles - A pointer enabling the opening of resources from the operating 
system (files, directories, etc.)

A scalar is denoted by $. It may be used to represent integers, strings, 
floats, any block of information. The syntax for creating a scalar is

$variable = <value>;

Where the value may be numeric, string, reference or boolean.
There is no size restriction on a scalar, so you may make your scalar as large 
as necessary. Perl is similar to shell scripting when assigning values to a 
variable.

Below are some examples of scalars

$scalar1 = 'this is a string';	# simple scalar assigned 'this is a string'
$value = 10.0;			# simple scalar assigned 10 (number is rounded)
$value2 = '10.0'		# number that acts as a string, number is not rounded
$scalar2 = "this is $value";	# interpolation, assigned 'this is 10.0'
$scalar3 = 'this is $value';	# non-interpolation, assigned 'this is $value'
$empty = '';			# empty string

Note the use of quotes here. The single quote (') indicates that the text will 
be used verbatim and the double quote (") indicates the text will be 
interpreted.
It is possible to operate on scalars.
For example

$suzy = $luigi + 4;

$suzy = $suzy - 3; # alternatively, $suzy -= 3;

The scalars may also be operated on as strings.
For example

$suzy = $suzy x 3; # this will print suzysuzysuzy

$suzy = $suzy . 'space'; # this will append 'space' to the string held in 
$suzy.

            ---------------------------------

3) Exercises

a) Create a program 'newline.pl' containing the following:

print"Hi there.\nThis is my second program.\n"

Run this and then replace the \n with a space or an Enter and compare the 
results.

What is the purpose of \n?

b) Write a program called 'average.pl' to calculate the average of the 
following numbers:

23, 28, 31, 17, 1

(Remember an average is where you add the numbers together and divide by the 
amount you have, this is learning perl not maths 101! Although, the maths is 
normally the hardest part.)

c) Modify the program called 'repetition.pl' to work more efficiently. 
(Remember there's more than one way to do it!)

!#usr/bin/perl -w
use strict;

print("Suzy\n");
print("Suzy\n");
print("Suzy\n");
print("Suzy\n");
print("Suzy\n")

            ----------------------------------

Answers to previous exercises

1) You should have found that your top line was something like as stated in 
part 1 of the lesson.

2) 'Hello World' should have appeared on your screen.

3) Practical Extraction and Report Language, or Pathologically Eclectic 
Rubbish Lister depending on your point of view.

            -----------------------------------

4) Where to find out more...

An archive of lessons is being created at

http://www.schiffwood.demon.co.uk/index.html

Also, there are links to useful websites and other books.

The archive should appear on the LinuxChix website soon.

Part 3 of the course will follow on 29th March 2003

          -----------------------------------------

Note: The author uses Perl version 5.6.1. All exercises should therefore 
work on later versions. If you wish to find out which version of Perl you are
running type "perl -v" into your command line.

If you have any comments regarding this perl lesson, suggestions for future 
topics, useful website addresses, useful reference material or you just want 
to say what you thought, please send your email to 

alice at schiffwood.demon.co.uk

I will be pleased to hear from you.

Credits and acknowledgements

Thanks to Meryll Larkin and Jacinta Richardson for their help with putting
together this material. 
Sources of material include Learning Perl, Randal Schwartx & Tom Phoenix,
Perl Training Australia (http://www.perltraining.com.au),
Perl 5 Developer's Guide, Peschko & DeWolfe

Suzy is the name of my cat.

-- 
Alice Wood

Project Gutenberg newsletter editor


More information about the Courses mailing list