Presentation is loading. Please wait.

Presentation is loading. Please wait.

Scalar Data Types and Basic I/O

Similar presentations

Presentation on theme: "Scalar Data Types and Basic I/O"— Presentation transcript:

1 Scalar Data Types and Basic I/O

2 Variables in Perl You DO NOT have to declare variables in Perl.
Unless you force it to force you to declare variables. Three basic types of variables: Scalar Array Hashes

3 Scalars Scalar variables store “single values”.
This “single value” can be any of the following types: int, float, double, char, string, or references. In Perl these various types fall into one of three categories: numbers, strings, and references. You don’t have to declare a variable’s type.

4 Scalars: Declaration All scalar variables begin with a $.
$ is NOT part of the variable! Next character is either a letter or ‘_’. Remaining characters are a mix of letters, numbers, and ‘_’. Correct: $x, $myvar123, $avg_height Wrong: $2values, $avg-height, $good$day.

5 Scalars: Numbers Unlike C/C++, all numeric data in Perl are stored as double precision floating points. Ex: E7 3e7 3E-7 Hex: 0x2aff, 0xAA3, 0XFFF Octal: Underscore: 3_212_567 → 3,212,567. Again, you do not need to specify the type.

6 Numeric Operators Operator Associativity ++ -- none unary - right **
* / % left binary + - ++ and – have the highest precedence.

7 Examples 4 % 2 → 0 5 / 2 → 2.5 (5 and 2 are coerced from integers to reals). $total++ * 3 $a ** 2 $b / $ c / 2 Important. The order of evaluation of operands of operators is unspecified. This is left for the compiler to decide. Ex: $x++ * $x--

8 Scalars: Strings Unlike C/C++, strings in Perl are not terminated by ‘\0’. They are not represented as an array of characters. Individual characters cannot be accessed with [ ]. There are two types of strings in Perl Single quoted strings (‘). Double quoted strings (“).

9 Single Quoted Strings Strings delimited by (‘). They are not interpolated and cannot contain escape sequence characters. Examples: ‘hello’ ‘Don\’t do it!’ ‘can\’t, won\’t, wouldn\’t ever!’ ‘apples are good\n’ ??

10 Single Quoted Strings Another to say the same thing:
q^hello^ q^apples are good\t^ q^Don’t do it!^ q^can’t, won’t, wouldn’t ever!^ Can also use ( ), { }, [ ], < > for better readability: Q(hello) Q{can’t, won’t, wouldn’t ever!}

11 Double Quoted Strings. Differs from single quoted strings in two ways:
Can include escape sequence characters – e.g. \n, \t, \r, etc. Variables in the string are interpolated. Examples: “The man said, \”Quantity \t Price \t Total\” \n\n” “Apples are good for $name.” → “Apples are good for bob.” “Apples are good for \$name.” → “Apples are good for $name.” “Today is ${day}day.” → “Today is Monday.” Can also use qq Ex: qq*”No way!”, said the girl.*

12 When q Meets qq What happens when you put (‘) and (“) together?
If “ is embedded within ‘ ‘The boy said, “Today is $day” ’ If ‘ is embedded within “ “The boy said, ‘Today is $day’ “

13 String Operators String Catenation (.) Append two strings together.
“Happy” . “ Birthday” → “Happy Birthday.” $str . “ Holidays” → “Happy Holidays.” The operands are not effected by (.) Repetition operator (x) “Beat OU! ” x 3 → “Beat OU! Beat OU! Beat OU! ” What about? “Happy ” . “Birthday! ” x 2 → “Happy Birthday! Birthday! ”

14 String Functions Perl provides several useful string manipulation functions. chop and chomp length, lc, uc ord, hex, oct index, rindex substr, join

15 Chop and Chomp Chop removes the last character in a string.
chop(“apples”) → “apple” If $a, $b, and $c are “a”, “an”, and “ant”, then chop($a, $b, $c) → “” “a” “an” Chomp removes the ending input record separator (e.g. newline) in a string. If string does not end with an input record separator, then chomp does nothing to the string and returns 0.

16 length, lc, and uc length returns the number of chars.
Ex: length(“apples”) → 6 lc converts a string to all lower case. Ex: lc(“ApPlEs”) → “apples” uc converts a string to all upper case. Ex: uc(“apples”) → “APPLES”

17 index and rindex index searches for the starting position of a substring. rindex same as index except search is done from right to left. Examples: index(“apples”, “pp”) returns 1 rindex(“apples”, “pp”) returns 1 index(“apples”, “p”) returns 1 rindex(“apples”, “p”) returns 2 index(“apples”, “q”) returns -1

18 substr substr extracts a substring The way to call it is: Examples:
substr(string, position, length) Examples: substr(“fruit juice”, 0, 3) returns “fru” substr(“fruit juice”, 3, 5) returns “it ju” substr(“fruit juice”, -3, 3) returns “ice”

19 join Like (.) but appends several strings separated by a deliminator.
The way to call it is: join Expression, List Example: $month = “09”, $day = “01”, $year = “05” join ‘/’, $month, $day, $year → “09/01/05”. join ‘/’, $month, $day, 2005 → ??

20 Mixed Modes What happens when strings and numbers interact?
The output depends on the context. Examples: $str = “32abc” 7 + $str 7 . $str What if $str = “abc32” → 39 → “732abc” → 7

21 Assignments Simple assignment operators (=)
$x = 2; $average = $sum / $total; $x = $y = $b = 2; $result = 17 * ($sum = $x + $y); chomp($str = $str1. $str1); Compound assignment operators (<op>=) $sum += $new_value; $str .= “ing”; $result **= 4;

22 Basic I/O <STDIN> reads input from a keyboard
$new_input = <STDIN> print writes output to screen print “Hello world!\n”; print (“Was summer vacation fun?\n”); print (“The sum is: $sum”, “\tThe average is: $average\”);

23 A Simple Example # circle # Input: The radius of a circle.
# Output: The area and circumference of the circle. $pi = 3.14; print “Please enter the radius of the circle: ”; $radius = <STDIN>; $area = $pi * $radius * $radius; $circumference = $pi * 2 * $radius; print “A circle of radius $radius has an area of $area \n”, “ and a circumference of $circumference \n”;

Download ppt "Scalar Data Types and Basic I/O"

Similar presentations

Ads by Google