PERL/C3/Special-Variables-in-PERL/English-timed
From Script | Spoken-Tutorial
|
|
00:01 | Welcome to the Spoken Tutorial on Special variables in Perl. |
00:04 | In this tutorial, we will learn about:
Global special variables Special command line variables Global special constants. |
00:13 | For this tutorial, I am using:
Ubuntu Linux 12.04 operating system Perl 5.14.2 and the gedit Text Editor. You can use any text editor of your choice. |
00:27 | As a prerequisite, you should have working knowledge of Perl Programming. |
00:32 | If not, then go through the relevant Perl spoken tutorials on the spoken tutorial website. |
00:38 | What are special variables? |
00:41 | Special variables are predefined variables that have a special meaning in Perl. |
00:46 | These do not need to be initialized before use. |
00:50 | These are used to hold the results of searches, environment variables and flags to control debugging. |
00:58 | First, we will learn about Global special variables. |
01:02 | '$_': (Dollar Underscore). This is a widely used special variable. |
01:06 | $_ - Dollar Underscore is the default parameter for lot of functions and pattern-searching strings. |
01:14 | Let us understand the usage of '$_' (Dollar Underscore) variable using a sample program. |
01:20 | I will open the special dot pl file which I have already created. |
01:26 | Go to the terminal and type: gedit special dot pl ampersand and press Enter. |
01:32 | special dot pl file is now open in gedit. Type the code as displayed on the screen. Let me explain the code now. |
01:42 | There are 2 foreach loops here. Both these foreach loops will execute the same result. |
01:49 | In each iteration of the loop, the current string is placed in '$_'. |
01:54 | And it is used by the print statement, by default. $_ (Dollar Underscore) saves the use of one extra variable $color. |
02:03 | Press Ctrl+S to save the file. |
02:06 | Then switch to the terminal and execute the Perl script by typing perl special dot pl and press Enter. |
02:13 | Here, both foreach loops give the same output. |
02:18 | Now, let us see another example to demonstrate how '$_' (Dollar Underscore) variable is implicit.
Go back to the special dot pl file. |
02:27 | Type the piece of code shown on the screen. |
02:30 | This program reads a text file "first.txt" line by line. Then it loops through the DATA file, till all lines are read. |
02:40 | print $_ variable prints the contents of the current line from the 'first.txt' file.
In the 'while' loop, the use of '$_' is implicit. |
02:51 | We will see more about this in future tutorials. |
02:55 | At the rate underscore is the special variable used to store subroutine parameters. |
03:01 | Arguments for a subroutine are stored in this array variable. |
03:06 | Array operations like pop/shift can be done on this variable, as we do in normal arrays. |
03:13 | I will show an example for this. Let us switch back to special dot pl file once again. |
03:19 | Type the code as displayed on the screen. |
03:22 | This program will return the maximum value between two numbers.
@_ (At the rate underscore) is a local array which stores the two arguments, dollar 'a' comma dollar 'b'. |
03:35 | That is, it is stored under dollar underscore index of zero and dollar underscore index of one |
03:43 | The print statement prints the maximum of the two given numbers. |
03:47 | Press Ctrl+S to save the file. |
03:51 | Switch to the terminal and execute the Perl script by typing perl special dot pl and press Enter. |
03:58 | The maximum value is displayed as output. Let’s move on. |
04:02 | Environment variables are represented by percentage (%) followed by capital 'ENV'. |
04:10 | Environment variables contain a copy of the current environment variables, such as the following. |
04:17 | Let us understand %ENV variable using a sample program. |
04:23 | We will switch back to the special dot pl file. |
04:26 | Type the following code as displayed on the screen. |
04:30 | Press Ctrl+S to save the file. Switch to the terminal and execute the Perl script. |
04:37 | Type: perl special dot pl and press Enter. |
04:42 | We can see the current environment details such as PWD (present working directory), username, language etc. |
04:51 | Next, we will see about another special variable dollar zero. |
04:55 | The special variable dollar zero ('$0') contains name of the current Perl program that is being executed. |
05:02 | This is generally used for logging purpose. |
05:05 | For example: I have a file named 'First.pl' within which I am using '$0' variable, as shown here. |
05:14 | On executing, it will print the filename First dot pl. |
05:19 | Perl has a built-in function called sort that sorts an array. |
05:24 | A comparison function will compare its parameters using the numerical comparison operator. |
05:30 | This operator is represented by lesser than equal to greater than symbols, as shown here. |
05:38 | Let us see an example for this. |
05:40 | Open the terminal and type: gedit sort.pl ampersand and press Enter. |
05:47 | sort.pl file is now open in 'gedit' Text Editor. Type the following code as displayed on the screen. |
05:56 | Let me explain the code. The first line declares an array of numbers. |
06:02 | The numerical comparison operator will compare the two values as numbers. |
06:08 | Dollar a and dollar b are special package local variables in which the values to be compared are loaded. |
06:16 | And, this sort function will sort the numbers in ascending order. |
06:21 | Let us now save and execute the program. |
06:25 | Switch back to the terminal and type: perl sort.pl and press Enter. |
06:31 | We can see that the numbers are sorted in ascending order. |
06:35 | Let’s see another special variable dollar exclamation. |
06:39 | 'dollar exclamation if used in string context, returns the system error string.
Here is an example of its usage. |
06:48 | If the file 'hello.txt' doesn't exist, it will print the error message, like: "Cannot open file for reading : No such file or directory". |
06:59 | Let’s now look at another special variable namely, dollar at the rate. |
07:04 | This is another widely used variable. It returns an error message, returned from eval or require command. |
07:12 | This example will print: "could not divide Illegal division by zero". |
07:17 | dollar dollar is yet another special variable. This holds the process ID of the Perl interpreter, running this script. |
07:26 | The diamond operator is used to read every line from the files specified on the command line. |
07:32 | Let us see an example for this. |
07:35 | Open the terminal and type: gedit commandline.pl ampersand and press Enter. |
07:42 | 'commandline.pl' file is now open in gedit. |
07:46 | Type the code as displayed on the screen. |
07:49 | Save the file. |
07:51 | Let me show you the text that I have in a file named sample dot txt file. |
07:56 | Now, run the program from the command line by typing: perl commandline dot pl space sample dot txt and press Enter. |
08:07 | This is the text we had in sample dot txt file. |
08:11 | If no files are specified, it reads from the standard input i.e. from the keyboard. |
08:17 | Perl has an array at the rate capital A R G V special variable. This holds all the values from the command line. |
08:27 | When using array at the rate capital A R G V, there is no need to declare the variables. |
08:33 | The values from the command line are automatically placed in this variable. |
08:37 | Let’s now move on to Global Special Constants. |
08:41 | underscore underscore E N D (all in capital )underscore underscore indicates the logical end of the program. |
08:50 | Any text following this special variable is ignored after this statement. |
08:55 | underscore underscore FILE (in capital letters) underscore underscore represents the filename of the program, at the point where it is used. |
09:06 | underscore underscore LINE (in capital letters) underscore underscore represents the current line number. |
09:13 | underscore underscore PACKAGE (in capital letters) underscore underscore represents the current package name at compile time or undefined if there is no current package. |
09:25 | We will see a sample program on how Global Special Constants are used. |
09:30 | Open the terminal and type: gedit specialconstant dot pl ampersand and press Enter. |
09:39 | specialconstant dot pl file is now open in gedit. |
09:44 | Type the following code as displayed on the screen. Let me explain the code now. |
09:50 | The special literals "PACKAGE, FILE, LINE" represent the package name, current filename and line number respectively, at that point in the program. |
10:00 | Let us execute the program. |
10:02 | Switch back to the terminal and type: perl specialconstant.pl and press Enter. |
10:09 | We can see the current package name, filename and line number of our program. |
10:15 | This brings us to the end of this tutorial. Let us summarize. |
10:19 | In this tutorial, we learnt about some commonly used special variables in Perl. |
10:25 | As an assignment, do the following. Write a Perl script to sort the following array of numbers in ascending and descending order. |
10:34 | Note: For descending order, use the below code for comparison. |
10:39 | Print the sorted result using while loop and special variable $_ (Dollar Underscore). |
10:45 | Save and execute the program. |
10:47 | Now check the result. |
10:49 | The video at the following link summarizes the Spoken Tutorial project. Please download and watch it. |
10:56 | The Spoken Tutorial project team conducts workshops and gives certificates on passing online tests. |
11:03 | For more details, please write to us. |
11:06 | Spoken Tutorial project is funded by NMEICT, MHRD, Government of India. |
11:13 | More information on this mission is available at this link. |
11:17 | This is Nirmala Venkat from IIT Bombay, signing off. Thanks for watching. |