1 / 23

Scalar Data Types and Basic I/O

Scalar Data Types and Basic I/O. 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. Scalars. Scalar variables store “single values”.

Download Presentation

Scalar Data Types and Basic I/O

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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: 37 3.7 .37 37. 3E7 3e7 3E-7 • Hex: 0x2aff, 0xAA3, 0XFFF • Octal: 077 0276 • Underscore: 3_212_567 → 3,212,567. • Again, you do not need to specify the type.

  6. Numeric Operators ++ 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: • 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” • 7 + $str • 7 . $str → 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”;

More Related