USP
UNIT - 8PERL
Q1)What do you mean by Perl? A1) Perl stands for Practical Extraction and reporting Language. The language was developed by Larry Wall. Perl is additionally a well-liked alternative for developing CGI (Common gateway Interface) scripts on the web (World Wide Web).Perl could be a common artificial language due to its powerful pattern matching capabilities, wealthy library of functions for arrays, lists and file handling.
A perl program runs during a special instructive model; the whole script is compiled internally in memory before being executed. Script errors, if any, are generated before execution. Unlike awk, printing isn’t perl’s default action. Like C, all perl statements finish with a punctuation mark. Perl statements will either be executed on instruction with the –e choice or placed in .pl files. In Perl, anytime a # character is recognized, the remainder is treated as a comment.The following is a sample perl script. #!/usr/bin/perl# Script: sample.pl – Shows the use of variables#print(“Enter your name: “);$name=<STDIN>;Print(“Enter length in inches: “);$inch=<STDIN>;$cm=$inch*2.34;print “The length in centi-meter is $cm\n”;print “Thank you $name for using this program.”
Q3) What is the use of chop function in Perl?A3)
This function is employed to get rid of the last character of a line or string. In above example, the variable $name can contain the input entered along with the newline character that was entered by the user. So as to get rid of the \n from the input variable, we will use chop($name).
Example: chop($var); can take away the last character contained within the string declared in the variable var.
Note that you simply ought to use chop operate whenever you scan a line from the keyboard or a file unless you deliberately need to retain the newline character.
A perl program runs during a special instructive model; the whole script is compiled internally in memory before being executed. Script errors, if any, are generated before execution. Unlike awk, printing isn’t perl’s default action. Like C, all perl statements finish with a punctuation mark. Perl statements will either be executed on instruction with the –e choice or placed in .pl files. In Perl, anytime a # character is recognized, the remainder is treated as a comment.The following is a sample perl script. #!/usr/bin/perl# Script: sample.pl – Shows the use of variables#print(“Enter your name: “);$name=<STDIN>;Print(“Enter length in inches: “);$inch=<STDIN>;$cm=$inch*2.34;print “The length in centi-meter is $cm\n”;print “Thank you $name for using this program.”
Q3) What is the use of chop function in Perl?A3)
This function is employed to get rid of the last character of a line or string. In above example, the variable $name can contain the input entered along with the newline character that was entered by the user. So as to get rid of the \n from the input variable, we will use chop($name).
Example: chop($var); can take away the last character contained within the string declared in the variable var.
Note that you simply ought to use chop operate whenever you scan a line from the keyboard or a file unless you deliberately need to retain the newline character.
Q4) Describe about the Variables in Perl.A4) Variables in perl don't have any type and do not need initialization. But we need to precede the variable name with a $ for both initialization as well as evaluation.Example: $var1=5; print $var1;
Some details associated with variables in perl are:1. Once a string is employed for numeric computation or comparison, perl converts it into a number.2. If a variable is indefinite, it's assumed to be a null string and a null string is numerically zero. Incrementing uninitialized variable returns one.3. If the primary character of a string isn't numeric, the whole string becomes numerically zero.4. Once Perl sees a string within the middle of associate expression, it converts the string to associate number. To do this, it starts at the left of the string and continues till it sees a letter that's not a digit. Example: "12O34" is regenerate to the number twelve, not 12034.$_: The Default Variable:perl assigns the line read from input to a special variable, $_, often called the default variable. chop, <> and pattern matching operate on $_ be default. It represents the last line read or the last pattern matched.By default, any function that accepts a scalar variable can have its argument omitted. In this case, Perl uses $_, which is the default scalar variable. chop, <> and pattern matching operate on $_ by default, the reason why we did not specify it explicitly in the print statement in the previous script. The $_ is an important variable, as it makes the perl script compact. For example, instead of writing $var = <STDIN>; chop($var);we can write, chop(<STDIN>);In this case, a line is read from standard input and assigned to default variable $_, of which the last character (in this case a \n) will be removed by the chop() function. Note that you can reassign the value of $_, so that you can use the functions of perl without specifying either $_ or any variable name as argument.
Some details associated with variables in perl are:1. Once a string is employed for numeric computation or comparison, perl converts it into a number.2. If a variable is indefinite, it's assumed to be a null string and a null string is numerically zero. Incrementing uninitialized variable returns one.3. If the primary character of a string isn't numeric, the whole string becomes numerically zero.4. Once Perl sees a string within the middle of associate expression, it converts the string to associate number. To do this, it starts at the left of the string and continues till it sees a letter that's not a digit. Example: "12O34" is regenerate to the number twelve, not 12034.$_: The Default Variable:perl assigns the line read from input to a special variable, $_, often called the default variable. chop, <> and pattern matching operate on $_ be default. It represents the last line read or the last pattern matched.By default, any function that accepts a scalar variable can have its argument omitted. In this case, Perl uses $_, which is the default scalar variable. chop, <> and pattern matching operate on $_ by default, the reason why we did not specify it explicitly in the print statement in the previous script. The $_ is an important variable, as it makes the perl script compact. For example, instead of writing $var = <STDIN>; chop($var);we can write, chop(<STDIN>);In this case, a line is read from standard input and assigned to default variable $_, of which the last character (in this case a \n) will be removed by the chop() function. Note that you can reassign the value of $_, so that you can use the functions of perl without specifying either $_ or any variable name as argument.
Q5) Give brief description about arrays in perl.A5)Perl allows us to store lists in special variables called array variables. Note that arrays in perl need not contain similar type of data. Moreover arrays in perl can dynamically grow or shrink during run time. @array = (1, 2, 3); # Here, the list (1, 2, 3) is assigned to the array variable @array.Perl uses @ and $ to distinguish array variables from scalar variables, the same name can be used in an array variable and in a scalar variable:$var = 1;@var = (11, 27.1, "a string");Here, the name var is used in both the scalar variable $var and the array variable @var. These are two completely separate variables. You retrieve value of the scalar variable by specifying $var, and of that of array at index 1 as $var[1] respectively. Following are some of the examples of arrays with their description.x = 2; # list containing one element@y = @x; # assign one array variable to another@x = (1, 3, 5);@y = (1, @x, 5); # the list (1, 3, 5) is substituted for @x, and the resulting list # (1, 1, 3, 5, 5) is assigned to @y. $len = @y; # When used as an rvalue of an assignment, @y evaluates to the # length of the array.$last_index = $#y; # $# prefix to an array signifies the last index of the array. Q6) Explain about ‘s’ and ‘tr’ functions in Perl.A6) perl supports different forms of regular expressions we have studied so far. It makes use of the functions ‘s’ and ‘tr’ to perform substitution and translation respectively.The s function: SubstitutionYou can use the =~ operator to substitute one string for another:$val =~ s/abc/def/; # replace abc with def$val =~ s/a+/xyz/; # replace a, aa, aaa, etc., with xyz$val =~ s/a/b/g; # replace all a's with b's;It also uses the g flag for global # substitution Here, the s prefix indicates that the pattern between the first / and the second is to be replaced by the string between the second / and the third.The tr function: TranslationYou can also translate characters using the tr prefix:$val =~ tr/a-z/A-Z/; # translate lower case to upperHere, any character matched by the first pattern is replaced by the corresponding character in the second pattern.Using Special Characters in PatternsThe following examples demonstrate the use of special characters in a pattern.The * character matches zero or more of the character it follows: /jk*l/ # This matches jl, jkl, jkkl, jkkkl, and so on.2. The + character matches one or more of the preceding character:/jk+l/ # This matches jkl, jkkl, jkkkl, and so on.3. The ? character matches zero or one copies of the preceding character:/jk?l/ # This matches jl or jkl.4. If a set of characters is enclosed in square brackets, any character in the set is an acceptable match:/j[kK]l/ # matches jkl or jKl5. Consecutive alphanumeric characters in the set can be represented by a dash (-):/j[k1-3K]l/ # matches jkl, j1l, j2l, j3l or jKl6. You can specify that a match must be at the start or end of a line by using ^ or $:/^jkl/ # matches jkl at start of line/jkl$/ # matches jkl at end of line7. Some sets are so common that special characters exist to represent them: \d matches any digit, and is equivalent to [0-9].\D doesn’t match a digit, same as [^0-9].\w matches any character that can appear in a variable name; it is equivalent to [A-Za-z0-9_].\W doesn’t match a word character, same as [^a-zA-Z0-9_]\s matches any whitespace (any character not visible on the screen); it is equivalent to [ \r\t\n\f]. perl accepts the IRE and TRE used by grep and sed, except that the curly braces and parenthesis are not escaped.For example, to locate lines longer than 512 characters using IRE:perl –ne ‘print if /.{513,}/’ filename # Note that we didn’t escape the curly braces Editing files in-Place perl allows you to edit and rewrite the input file itself. Unlike sed, you don’t have to redirect output to a temporary file and then rename it back to the original file. To edit multiple files in-place, use –I option.perl –p –I –e “s/<B>/<STRONG>/g” *.html *.htmThe above statement changes all instances of <B> in all HTML files to <STRONG>. The files themselves are rewritten with the new output. If in-place editing seems a risky thing to do, oyu can back the files up before undertaking the operation: perl –p –I .bak –e “tr/a-z/A-Z” foo[1-4]This first backs up foo1 to foo1.bak, foo2 to foo2.bak and so on, before converting all lowercase letters in each file to uppercase.
Q7)How is file handling done in Perl?A7)To access a file on UNIX file system from within Perl program, following steps must be performed:1. First, your program must open the file. This tells the system that your Perl program wants to access the file.2. Then, the program can either read from or write to the file, depending on how you have opened the file.3. Finally, the program can close the file. This tells the system that your program no longer needs access to the file. To open a file we use the open() function.open(INFILE, “/home/srm/input.dat”); INFILE is the file handle. The second argument is the pathname. If only the filename is supplied, the file is assumed to be in the current working directory.open(OUTFILE,”>report.dat”); # Opens the file in write modeopen(OUTFILE,”>>report.dat”); # Opens the file in append modeThe following script illustrates file handling in perl. This script copies the first three lines of one file into another.#!/usr/bin/perlopen(INFILE, “desig.dat”) || die(“Cannot open file”);open(OUTFILE, “>desig_out.dat”);while(<INFILE>) { print OUTFILE if(1..3);}close(INFILE);close(OUTFILE); 8.What are the different types of file tests available in perl? Some of the file tests are listed next, along with a description of what they do. if -d filename True if file is a directoryif -e filename True if this file existsif -f filename True if it is a fileif -l filename True if file is a symbolic linkif -s filename True if it is a non-empty fileif -w filename True if file writeable by the person running the program if -x filename True if this file executable by the person running the programif -z filename True if this file is emptyif -B filename True if this is a binary fileif -T filename True if this is a text file 9.Describe the use of Subroutines in Perl. The use of subroutines results in a modular program. We already know the benefits of modular approach. (They are code reuse, ease of debugging and better readability).Frequently used segments of code can be stored in separate sections, known as subroutines. The general form of defining a subroutine in perl is: sub procedure_name { # Body of the subroutine } Example: The following is a routine to read a line of input from a file and break it into words. sub get_words { $inputline = <>; @words = split(/\s+/, $inputline);} Note: The subroutine name must start with a letter, and can then consist of any number of letters, digits, and underscores. The name must not be a keyword. Precede the name of the subroutine with & to tell perl to call the subroutine. The following example uses the previous subroutine get_words to count the number of occurrences of the word “the”.#!/usr/bin/perl$thecount = 0;&get_words; Call the subroutinewhile ($words[0] ne "") { for ($index = 0; $words[$index] ne ""; $index += 1) { $thecount += 1 if $words[$index] eq "the";}&get_words;}
Q8)What are the return values in Perl?A8)In perl subroutines, the last value held by the subroutine becomes the subroutine's return value. That is the reason why we could refer to the array variable @words in the calling routine.
0 matching results found