IT441 Network Services Administration

1 / 49

# IT441 Network Services Administration - PowerPoint PPT Presentation

IT441 Network Services Administration. Prof. Alfred J Bird, Ph.D., NBCT abird@cs.umb.edu http:// it441-s14-bird.wikispaces.umb.edu / Office – McCormick 3rd floor 607 Office Hours – Tuesday and Thursday 4:00PM to 5:15PM. Scalars. What is a Scalar? Types of Scalars: Numbers Strings

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'IT441 Network Services Administration' - kitra

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### IT441Network Services Administration

Prof. Alfred J Bird, Ph.D., NBCT

abird@cs.umb.edu

http://it441-s14-bird.wikispaces.umb.edu/

Office – McCormick 3rd floor 607

Office Hours – Tuesday and Thursday 4:00PM to 5:15PM

Scalars
• What is a Scalar?
• Types of Scalars:
• Numbers
• Strings
• Logical or Boolean
• Automatic conversion between types
Numbering Systems
• Decimal
• Binary
• Octal
Constant (Literal)
• What is a constant?
• Why do we use a constant?
• Write a simple program to print out a few constants.
• Single quoted vs. Double quoted strings
Variables
• What is a variable?
• How do we name variables?
• Starts with \$
• Next either letter or _
• Rest can be letters or numbers
• You should develop a pattern so you are consistent within your programs.
• Make the name mean something!!!
Numeric Operators
• - Subtraction
• * Multiplication
• / Division
• ** Exponentiation
• % Modulo (Remainder)
Boolean Operators
• && And
• || Or
• ! Not
Numerical Comparisions
• == Equality
• < Less Than
• <= Less Than or Equal To
• > Greater Than
• >= Greater Than or Equal To
String Operators
• . Concatenation
• x Repetition
• ord() ASCII Value of a character
• lt Less Than
• gt Greater Than
• eq Equal To
String Comparisions
• \$x gt \$y
• \$x lt \$y
• \$x ge \$y
• \$x le \$y
• \$x eq \$y
• \$x ne \$y
A Couple of More Things
• \$a++ Autoincrement
• \$b-- Autodecrement
• Scoping: Blocks of code limit the range of a variables definition

\$numDef=25;

print \$numDef;

{ my \$numDef=1;

print \$numDef;}

print \$numDef;

Ways to get out of a program
• exit (0);
• die \$string;
Increment/Decrement
• A very helpful construct is the increment/decrement statement
• \$i++ is equivalent to \$i = \$i+1
• \$j = \$i++
• \$j = ++\$i
• \$j = \$i - -
• \$j = - - \$i
Logical Operators
• \$x and &y
• \$x && \$y
• \$x or \$y
• \$x || \$y
• not \$x
• !\$x
Control Flow Constructs
• What is a control statement?
• Types of control statements:
• if
• while
• for
If Statements
• if
• if ( condition ) { action }
• if else
• if (condition ) { action }
• else {another action }
• if elsif else
• if ( condition ) { action }
• elsif (another condition ) { another action }
• else { a further action }
If Statements (cont)
• unless statement

unless (condition) {action};

• Reversed order

print “Hello Al\n” if(\$inputName = “Al”);

die “Can’t divide by zero\n:” if (\$num4 == 0);

While Statement
• while loops
• while ( condition ) { action }
• \$i=1;
• while (\$i<=5) {
• print \$i, “\n”;
• \$i++;
• }
• until loops
• Same form but opposite action of the while loop
An interesting variable
• \$_ is the default variable for many functions
• while ( \$line = <STDIN>) {
• chomp (\$line);
• }
• while (<STDIN>) {
• chomp;
• }
Breaking Out of a Loop
• There are three ways to modify the execution of the loop:
• last;
• next;
• redo;
• Statement labels
• Labels a location in the program
• Best to use all uppercase letters

OUTER: while(…) {

}

Another Form of Loops
• do { action } while ( condition );
• do { action } until ( condition );
For statement
• for loop
• for ( init_exp ; test_exp; step_exp) { action }
• for (\$i=1; \$i<5; \$i++) {print \$i, “\n”;}
Foreach loop
• foreach my \$number (1..10) {
• print “The number is: \$number \n”;
• }
Alternative String Delimiters
• q// single quoted string
• qq// double quoted string
• In qq// the // can be replaced with any other non-alphanumeric character provided you use the same character on both ends of the string
Operators on Strings and Numbers
• \$a = “123”
• \$b = “456”
• What do we get if we write this line of code,
• print \$a + \$b;
• print \$a . \$b;
Math Operators
• ** Exponentiation
• - Unitary Negation
• * Multiplication
• / Division
• % Modulo (Remainder)
• - Subtraction
Getting Data into the Program
• Use the file handle <STDIN>
• Try this out

print “Input something:”;

my \$newInput=<STDIN>;

print \$newInput;

• chomp (\$newInput);
• chop(\$newInput);
A better way
• We want to know for sure that we were successful opening the file so we include a test:
• open (OUT1, “>>test.txt”) or die \$!;
Using a filehandle
• To use a filehandle you wrap it in angle brackets.
• print OUT1 “Hello World!\n”;
• chomp (\$in = <IN1>);
I/O Redirectors
• Remember what the redirectors do:
• >
• >>
• <
Comment Blocks
• Perl normally treats lines beginning with a # as a comment.
• Get in the habit of including comments with your code.
• Put a comment block at the beginning of your code which includes your name, the name of the module, date written and the purpose of the code.
Comment Blocks

#!/usr/bin/perl -w

#

#Module Name: helloWorld.pl

#

#Written by Alfred J Bird, Ph.D., NBCT

#Date Written – 21 September 2011

#Purpose: To print out the string “Hello world!”

#

#Date Modified – 25 September, 2011

#Purpose of modification: To fix spelling errors.

#Modified by: Al Bird

#

print “Hello world! \n”;

Data Types
• Remember there are three basic data types in Perl
• Numeric
• String
• Boolean (Logical)
• I differentiate between data types and data structures. Not every author or teacher does. Some books use the terms interchangeably so watch out!
Data Structures
• In PERL there are three types of data structures:
• Scalars
• Arrays
• Hashes
• Each structure has it own naming syntax.
• \$scalar
• @array
• %hash
Lists
• I do not consider a list a data structure but some authors, teachers and CS pros do so be careful .
• A list is defined as an ordered set of scalar values.
• Lists are delimited by parentheses such as
• ()
• (1)
• (“a”)
• (1, 2, 3, 4, 5)
• (“a”, “b”, “c”, “d”, “e”)
• (‘e’, ‘d’, ‘c’, ‘b’, ‘a’)
• Remember that a list is ordered!
Using a List
• You have already been using lists without knowing it.
• When you type the following statement

print (“Hello ”, “world”, “! “, “\n”);

You are passing a list to the print function.

• I have just used a new Perl term, function.
• A function is subroutine (a free standing piece of code) or an operator that returns a value and/or does something
Another Way to Create a List
• Given a list we created this way:

(‘Hello’, ‘world.’, ‘I’, ‘am’, Al’)

• We can use another method to create it:

qw/Hello world I am Al/

• As with earlier similar operators we can use any nonalphanumeric character as a separator:

qw#Hello world I am Al#

qw&Hello world I am Al&

qw{Hello world I am Al}

A Third Way to Create a List
• We can create a list by using a range.
• This list (1, 2, 3, 4, 5, 6)
• Is the same as this list (1..6)
• But this will not work:
• (6..1) does not give (6, 5, 4, 3, 2, 1)
• because the left hand side must be less than the rhs
• To get the list (6, 5, 4, 3, 2, 1) using a range we need to type reverse (1..6)
• Try these using a print statement!
Printing a List
• Remember that a list is ordered!
• The elements have a location that can be counted
• The counting starts with 0 (the 1st element is number 0)
• How do we print a list?
• What is the result of the following statements?

print (qw/a b c d e f g/);

print qw/a b c d e f g/;

• First predict the results and then try them and see what happens.
Printing Individual List Elements
• We can refer to individual elements in a list by using a number in brackets [] after the list.
• What is the result of the following statement?

print ((qw/a b c d e f g/)[2]);

print ((‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’) [3]);

• First predict the results and then try them and see what happens.
• You can put a scalar variable into the braces

\$i = 3;

print ((qw/a b c d e f g/)[\$i]);

A List Slice
• We can refer to a range inside the braces.
• What do we get when we run the following statement:

print ((qw/a b c d e f g/)[2..4]);

• First predict the results and then run the statement.

print ((qw/a b c d e f g/)[3..1]);

Extras
• What do you think will happen if you enter the following code:

print ((‘z’, ‘x’, ‘c’, ‘v’, ’b’, ‘n’, ‘m’)[-1]);

• First make a prediction and then run the code.

\$i=2.9;

print ((‘z’, ‘x’, ‘c’, ‘v’, ’b’, ‘n’, ‘m’)[\$i]);

• First make a prediction and then run the code.
Another Data Structure

The problem with a list is that it cannot be named!

We need to retype the list every time we want to use it.

To solve this difficulty we have a data structure called an array.

We can give an array a name that starts with a @.

Arrays
• An array is a data structure that has the characteristics of a list but can be named!
• To store a scalar into a variable we use an assignment statement \$a = 1;
• To store a list into an array we do the same thing:
• @a = (1,2,3,4,5);
• @l = (‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’);
• @m = qw<az x c v b n m>;
Accessing Individual Elements

How do we access an individual element in an array?

Just like we did in a list.

• Using a list if we code:

print ((‘now’, ‘is’, ‘the’, ‘time’)[2]);

• It will print out the
• Likewise if we define an array:

@s = (‘now’, ‘is’, ‘the’, ‘time’);

print @s[2];

• Will also print out the
• What about print \$s[2];? What will it print out?
Scalar vs. List Context
• Why does the statement print \$s[2]; work?
• Use the prefix for what you want not what you have.
• This is referred to as list vs. scalar context.
• It can become a very important concept later.
Array Functions
• How do we add data to an array?
• @array = (@array, \$scalar); #is one way!
• But there is a better way!!
• push @array, \$scalar; #will do the same thing!
• push will append the value in \$scalar to the top of @array
• Likewise pop will take the last value in an array and do something with it.
• \$scalar = pop @array
Array Functions
• push() and pop() act on the top of an array (the highest indexed end)
• shift() and unshift() act on the bottom of an array and perform the same function.
• We already know what reverse() does.
Array Functions
• Another function is sort().
• What do you think it does?
• Write a simple program to try it with your array of months.
• Predict the output before you try it.
• What happened?
• Now write a simple program to try it with your array of number of days.
• Predict the output before you try it.
• What happened?????
• Why?????