PERL/C3/Access-Modifiers-in-PERL/English-timed

From Script | Spoken-Tutorial
Revision as of 16:42, 20 November 2015 by PoojaMoolya (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Time
Narration
00:01 Welcome to the Spoken Tutorial on Access Modifiers in PERL
00:07 In this tutorial we will learn about
  • Scope of variables
  • Private variables
  • Dynamically scoped variables
  • Global variables
00:19 For this tutorial, I am using
  • Ubuntu Linux 12.04 operating system
  • Perl 5.14.2
  • and the gedit Text Editor
00:32 You can use any text editor of your choice.
00:36 You should have basic knowledge of Perl Programming.
00:40 If not, then go through the relevant Perl spoken tutorials on the spoken tutorial website.
00:47 Let us start with the introduction to the Scope of variables.
00:51 The scope of a variable is the region of code within which a variable can be accessed.
00:58 In other words, it refers to the visibility of variables.
01:03 First, we will discuss about my, local and our modifiers in Perl.
  • my means Private variables
  • local means Dynamically scoped variables
  • our means Global variables
01:20 Variables declared with my keyword will lose scope outside the block in which they are declared.
01:28 You can declare a variable without giving it a value, like this:

my $fvaluesemicolon

01:37 You can also declare a variable by assigning a value to it, as:
01:43 my $fValue = 1 semicolon
01:48 my $fname = within double quotes Rahul semicolon
01:55 The syntax to declare several variables with the same my statement is as follows:
02:02 my open bracket $fname comma $lname comma $age close bracket semicolon
02:12 Let us understand private variables using a sample program.
02:17 I already have a sample program. Let me open it in gedit Text editor.
02:24 Open the terminal and type gedit scope hyphen my dot pl ampersand and press Enter
02:34 Scope-my dot pl file is now open in gedit.
02:39 Type the following code as displayed on the screen. Let me explain the code now.
02:46 Here, I have declared a private variable $fname with my keyword.
02:52 And assigned the value "Raghu" to it.
02:56 Within this block, the print statement prints the value in the fname variable, i.e. "Raghu".
03:04 In the next block, I have assigned the value "Other" to the same private variable $fname.
03:11 So, the print statement will print "Other" within this particular block.
03:17 The last print statement in this program, will not print any output.
03:23 This is because outside the scope of the blocks defined earlier, fname has no value assigned to it.
03:32 Now, press Ctrl+S to save the file.
03:37 Let us now execute the program.
03:40 Switch back to the terminal and type perl scope hyphen my dot pl and press Enter.
03:49 The output is displayed as Block 1: Raghu

Block 2: Other

Outside Block: There is no output

03:59 So, the scope of the my variable is accessed only within a particular block of code.
04:06 Now let us change the existing program a little.
04:10 Let us add my $fname = "John" semicolon outside the blocks, before the last print statement.

Save the changes

04:23 Switch back to the terminal and execute as before.
04:28 Analyse the output that is displayed.
04:32 Hope you are able to understand the scope of using my variable within a block and outside a block.
04:41 Next we will see about dynamically scoped variable in Perl.
04:47 Local keyword gives a temporary scope to a global variable.
04:52 The variable is visible to any function called from the original block.
04:58 You can declare a local variable as,

local $fValue = 100 semicolon

local $fname” = within double quotes Rakesh semicolon

05:13 Let us understand this using a sample program.
05:17 Open the terminal and type gedit scope-local dot pl ampersand and press Enter.
05:27 This will open scope-local dot pl file in gedit.
05:33 Type the following code as displayed on the screen.

Let me explain the code now.

05:40 Here, in the first line we have declared a variable $fname and initialised it.
05:47 Inside the function Welcome, we have declared a local variable by the same name, $fname.
05:54 Notice the local keyword before the variable name.
05:59 And we have assigned the value "Rakesh" to this variable.
06:03 So, basically, inside function Welcome(), $fname is modified as a new temporary local variable.

Then, the function Hello is being called.

06:15 Here is the function definition of Hello.
06:18 At the end of the program, we are calling both the functions Welcome and Hello.
06:25 Now press Ctrl + S to save the program.
06:29 Let us execute the program.
06:31 Switch back to the terminal and type, perl scope-local.pl and press Enter.
06:41 The output is displayed as Hello, Rakesh ! Hello, Welcome to Spoken tutorials!
06:48 Let us understand the output.
06:51 When the function Welcome() is called, the function Hello() within it, accesses the local variable.
06:59 Within Welcome(), $fname has the value "Rakesh".
07:04 After this, the function Hello() accesses the variable $fname once again.
07:11 But this time, it is the variable $fname which was initialized to "Welcome to spoken tutorials".
07:19 It does not access the local variable $fname within the function Welcome().
07:25 Which means that, the local variable restores the scope, after leaving the block Welcome().
07:32 Next, we will see about global variables in Perl.
07:38 A global variable can be accessed anywhere in the program.
07:43 Global variables are declared with our keyword.
07:47 Here are some examples. our $fvalue = 100 semicolon </nowiki> our $fname ="Priya" semicolon
08:01 Now let us look at a working example of global variables.
08:06 Switch back to the terminal and type gedit scope-our dot pl ampersand and press Enter
08:16 This will open the file scope-our.pl in gedit.
08:22 Let me explain the sample program which I have written.
08:27 I have declared package main and a global variable as our $i and I have initialised it to 100;
08:37 Notice the package First declaration.
08:40 A package is a collection of code, which has its own namespace.
08:46 Namespace prevents variable name collisions between packages.
08:51 We will see more about package and namespace in future tutorials.
08:56 Within package First, the global variable "i" holds the value 10.
09:02 In package Second, the global variable "i" is assigned the value 20.
09:08 The main package uses both package First variable and the package Second variable.
09:15 In my program, I have declared the same variable "i" in all the packages.
09:21 The package variable is referred by package name::variable name
09:29 In our example it is $First::i, $Second::i
09:39 We have multiple packages within one file, and the global variable will be accessed by all the packages.
09:47 Now, save the file and execute the program.
09:51 So, switch to terminal and type- perl scope-our dot pl and press Enter.
09:59 The output is as displayed on the terminal.
10:03 Analyze the output by yourself to understand how the assignment to the variable i was done.
10:11 This brings us to the end of this tutorial. Let us summarise.
10:16 In this tutorial, we learnt:
  • scope of variables
  • declaration of private variables
  • dynamically scoped variables and
  • global variables with examples.
10:29 It is preferred to use my than local as the compilation is faster.
10:35 Here is an assignment for you.
10:37 Write the code for the following assignment and execute it.
10:42 Declare a package as FirstModule
10:46 Declare a variable $age as our and assign the value 42
10:52 Declare another package as SecondModule
10:56 Declare a variable $ageword as our and assign the value within double quotes "Forty-Two"
11:05 Declare a subroutine First()
11:08 Inside the subroutine, declare two variables with local and my keyword as below:
11:16 local' $age = 52 semicolon
11:20 my $ageword = within double quotes Fifty-two;
11:27 Call another subroutine as Result()
11:31 Print the values of $age and $ageword inside this function.
11:37 End the subroutine
11:39 Declare the subroutine Result()
11:42 Again print the values of $age and $ageword
11:47 End the subroutine
11:49 Call the function First()
11:51 Print the Package First and Package Second as below:
11:57 The video at the following link summarises the Spoken Tutorial project.

Please download and watch it.

12:05 The Spoken Tutorial Project Team conducts workshops and gives certificates for those who pass an online test.

For more details, please write to us.

12:18 Spoken Tutorial project is funded by NMEICT, MHRD, Government of India.

More information on this mission is available at this link.

12:31 This is Nirmala Venkat from IIT Bombay, signing off. Thanks for watching.

Contributors and Content Editors

PoojaMoolya, Sandhya.np14