Perl uses special characters like $ @ % & to denote scalar, array, hash and subroutine variables respectively. Variables are named and can be assigned values using the = operator. Perl distinguishes between singular and plural variable names where singular names hold a single data item like a scalar value, and plural names hold collections of data items like arrays. The document then provides examples and details about defining and using different types of variables in Perl like scalars, arrays, hashes and subroutines.
Presentation by Sana Mateen, introducing key concepts in Perl related to names, values, and variables.
Perl uses names for variables, with distinct categories: scalar ($), array (@), hash (%). Names must follow valid characters and special rules for declarations.
Perl identifies scalar data as strings or numbers. Demonstrated through code examples, including positive/negative integers, floating points, octal, and hex values. Examples of string scalars show differences between single and double quotes, emphasizing terminators and escape sequences for special characters.
Perl assignment operator '=' allows for complex expressions. Introduced usage of <STDIN> for keyboard input, highlighting control commands for end-of-file.
NAMES IN PERL Perl manipulates variables which have a name. A value is assigned to/stored in variable by assignment statement of the form name=value Perl distinguishes between singular name and plural name. A singular name –holds single item of data– scalar value A plural name for variable – hold collection of data items — an array or hash Starting special character of variable denotes the kind of thing that name stands for $ ---- Scalar data @ ----- Array % ----- Hash & ----- Sub routine 6/18/2016 2
3.
NAMES IN PERL... Valid characters are letters,digits,underscores. First character after special character can be a letter or underscore. Names may also have non-alphanumeric character after special character. $$,$? (system reserved names in Perl ) Each kind of data has separate namespace. Special character determine the context in which the name is being used. In C language a new variable is declared as int i=1; float data[9]; Scope of variable depends on the part of program in which the variable is visible and available for use. Global scope and local scope. Variable declaration in perl – $a=5; my $a=10; A variable comes into existence when declared or first used with special value denoted by undef undef $x; 6/18/2016 3
4.
NAMES IN PERL... use strict ‘var’; (or) use strict; It tells perl to insist on declaration by placing the line. At the start of script variables are declared using my $x,$y; #!/usr/bin/perl @ages = (25, 30, 40); @names = ("John Paul", "Lisa", "Kumar"); print "$ages[0] = $ages[0]n"; print "$ages[1] = $ages[1]n"; print "$ages[2] = $ages[2]n"; print "$names[0] = $names[0]n"; print "$names[1] = $names[1]n"; print "$names[2] = $names[2]n"; 6/18/2016 4
5.
A scalar isa single unit of data. Perl recognizes two kinds of scalar data , a String and Numbers . There’s no difference between integers and real numbers both are same. Here is a simple example of using scalar variables − #!/usr/bin/perl $age = 25; # An integer assignment $name = "John Paul"; # A string $salary = 1445.50; # A floating point print "Age = $agen"; print "Name = $namen"; print "Salary = $salaryn"; This will produce the following result − Age = 25 Name = John Paul Salary = 1445.5 Strings are stored as sequence of bytes of unlimited length . Perl is dynamically typed language (System keeps track of whether a variable contains a numeric value or string value).Depending on the context strings are converted to int. Eg: If int/num occurs in String context, operand for string operator , perl will convert it to string Numeric Scalars A scalar is most often either a number or a string. Following example demonstrates the usage of various types of numeric scalars − 6/18/2016 5
6.
#!/usr/bin/perl $integer = 200; $negative= -300; $floating = 200.340; $bigfloat = -1.2E-23; # 377 octal, same as 255 decimal $octal = 0377; # FF hex, also 255 decimal $hexa = 0xff; print "integer = $integern"; print "negative = $negativen"; print "floating = $floatingn"; print "bigfloat = $bigfloatn"; print "octal = $octaln"; print "hexa = $hexan"; This will produce the following result − integer = 200 negative = -300 floating = 200.34 bigfloat = -1.2e-23 octal = 255 hexa = String Scalars Following example demonstrates the usage of various types of string scalars. Notice the difference between single quoted strings and double quoted strings − #!/usr/bin/perl $var = "This is string scalar!"; $quote = 'I m inside single quote - $var'; $double = "This is inside single quote - $var"; $escape = "This example of escape -tHello, World!"; print "var = $varn"; print "quote = $quoten"; print "double = $doublen"; print "escape = $escapen"; 6/18/2016 6
7.
STRING CONSTANTS/LITERALS Stringconstant and literals can be enclosed in single or double quotes. The string is terminated by first next occurrence of quote which started it , so single quoted strings can include double quotes and vice versa. Single quoted strings are treated as it is- ‘Fridayn’ ‘Friday’--- String ‘Fridayn’---String with seven characters including last character which is a new line. n-newline,t-tab,U-uppercase There is more than one way to choose your own quote 1.quote — q 2.double quote– qq q /any string/ or q(any string) and qq(any string), qq /any string/ 6/18/2016 7
8.
VARIABLES AND ASSIGNMENT Perl uses – ‘=‘ as the assignment operator. It returns a value. This permits statement like $b=4+($a=3); $a=“Burger”; $b=“Sandwich $a” //$b would give “Sandwich Burger” $c=“turkey $a”; Scalar variable names start with--$ $a=“java”; $b=“${a} script”;//value is javascript 6/18/2016 8
9.
<STDIN> <STDIN>is usedfor acquiring input from keyboard.If no input is queued perl will wait until a line is typed and the return key pressed. End-of-file ctrl - D Unix ctrl - Z DOS They cause the return to be undefined, it evaluates to “ “ . The empty string is treated as false in boolean context. while(<STDIN>){ ..... } To process all statements until the end of file is reached. While(defined <STDIN>){ ... } 6/18/2016 9