02 Part 2 Scalar Data

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 = ;

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

1) 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?

2) 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.)

3) 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...

Websites
CPAN
Learn Perl
Perl.com
Perldoc.com
Perl Mongers
Perl Monks
Perl Paraphernalia
Perl Review
Perl Training
Use Perl

Useful Books

Learning Perl (3rd ed)
Randal L. Schwartz & Tom Phoenix
O'Reilly
ISBN 0-596-00132-0

Perl in a Nutshell (2nd ed)
Ellen Siever, Stephen Spainhour & Nathan Patwardhan
O'Reilly
ISBN 0-596-00241-6

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.

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). Alice Wood

Project Gutenberg newsletter editor