|
Perl Interview Questions and Answers
Why should I use the -w argument with my Perl
programs?
Many Perl developers use the -w option of the
interpreter, especially during the development stages of
an application. This warning option turns on many
warning messages that can help you understand and debug
your applications.
To use this option on Unix systems, just include it on
the first line of the program, like this:
#!/usr/bin/perl -w
If you develop Perl apps on a DOS/Windows computer, and
you're creating a program named myApp.pl, you can turn
on the warning messages when you run your program like
this:
perl -w myApp.pl
Assuming $_ contains HTML, which of the following
substitutions will remove all tags in it?
1.s/<.*>//g;
2.s/<.*?>//gs;
3.s/<\/?[A-Z]\w*(?:\s+[A-Z]\w*(?:\s*=\s*(?:(["']).*?\1|[\w-.]+))?)*\s*>//gsix;
You can't do that.
If it weren't for HTML comments, improperly formatted
HTML, and tags with interesting data like < SCRIPT >,
you could do this. Alas, you cannot. It takes a lot more
smarts, and quite frankly, a real parser.
I want users send data by formmail but when they send nothing or
call it from web site they will see error.
codes in PHP like this:
if (isset($HTTP_POST_VARS)){
..........
}
else{
echo ("error lalalalal")
}
How it will look in perl?
In php it will be like
if (isset($HTTP_POST_VARS)){
....
}
In perl, tried this.
if ($ENV{'REQUEST_METHOD'} eq 'POST'){
.....
}
What is the output of the following Perl program?
1 $p1 = "prog1.java";
2 $p1 =~ s/(.*)\.java/$1.cpp/;
3 print "$p1\n";
prog1.cpp
Why aren't Perl's patterns regular expressions?
Because Perl patterns have backreferences.
A regular expression by definition must be able to
determine the next state in the finite automaton without
requiring any extra memory to keep around previous
state. A pattern /([ab]+)c\1/ requires the state machine
to remember old states, and thus disqualifies such
patterns as being regular expressions in the classic
sense of the term.
What does Perl do if you try to exploit the execve(2)
race involving setuid scripts?
Sends mail to root and exits.
It has been said that all programs advance to the point
of being able to automatically read mail. While not
quite at that point (well, without having a module
loaded), Perl does at least automatically send it.
How do I do < fill-in-the-blank > for each element in a
hash?
Here's a simple technique to process each element in a
hash:
#!/usr/bin/perl -w
%days = (
'Sun' =>'Sunday',
'Mon' => 'Monday',
'Tue' => 'Tuesday',
'Wed' => 'Wednesday',
'Thu' => 'Thursday',
'Fri' => 'Friday',
'Sat' => 'Saturday' );
foreach $key (sort keys %days) {
print "The long name for $key is $days{$key}.\n";
}
How do I sort a hash by the hash key?
Suppose we have a class of five students.
Their names are kim, al, rocky, chrisy, and jane.
Here's a test program that prints the contents
of the grades hash, sorted by student name:
#!/usr/bin/perl -w
%grades = (
kim => 96,
al => 63,
rocky => 87,
chrisy => 96,
jane => 79,
);
print "\n\tGRADES SORTED BY STUDENT NAME:\n";
foreach $key (sort (keys(%grades))) {
print "\t\t$key \t\t$grades{$key}\n";
}
The output of this program looks like this:
GRADES SORTED BY STUDENT NAME:
al 63
chrisy 96
jane 79
kim 96
rocky 87
}
How do you print out the next line from a filehandle
with all its bytes reversed?
print scalar reverse scalar <FH>
Surprisingly enough, you have to put both the reverse
and the <FH> into scalar context separately for this to
work.
How do I send e-mail from a Perl/CGI program on a Unix
system?
Sending e-mail from a Perl/CGI program on a Unix
computer system is usually pretty simple. Most Perl
programs directly invoke the Unix sendmail program.
We'll go through a quick example here.
Assuming that you've already have e-mail information you
need, such as the send-to address and subject, you can
use these next steps to generate and send the e-mail
message:
# the rest of your program is up here ...
open(MAIL, "|/usr/lib/sendmail -t");
print MAIL "To: $sendToAddress\n";
print MAIL "From: $myEmailAddress\n";
print MAIL "Subject: $subject\n";
print MAIL "This is the message body.\n";
print MAIL "Put your message here in the body.\n";
close (MAIL);
Page Numbers :
1
2
3
4
5
Have a Question ?
post your questions here. It
will be answered as soon as possible.
Check
HTML Interview
Questions for more HTML Interview Questions with Answers
Check
Job Interview Questions
for more Interview Questions with Answers
|