ALLInterview.com :: Home Page            
 Advertise your Business Here     
Browse  |   Placement Papers  |   Company  |   Code Snippets  |   Certifications  |   Visa Questions
Post Question  |   Post Answer  |   My Panel  |   Search  |   Articles  |   Topics  |   ERRORS new
   Refer this Site  Refer This Site to Your Friends  Site Map  Bookmark this Site  Set it as your HomePage  Contact Us     Login  |  Sign Up                      
Google
   
 
Categories >> Software >> Scripts >> CGI Perl
 
 


 

 
 PHP interview questions  PHP Interview Questions (659)
 ASP interview questions  ASP Interview Questions (251)
 CGI Perl interview questions  CGI Perl Interview Questions (76)
 JavaScript interview questions  JavaScript Interview Questions (175)
 VB Script interview questions  VB Script Interview Questions (343)
 JSP interview questions  JSP Interview Questions (100)
 Shell Script interview questions  Shell Script Interview Questions (158)
 Python interview questions  Python Interview Questions (5)
 Tcl interview questions  Tcl Interview Questions (19)
 Awk interview questions  Awk Interview Questions (6)
 AJAX interview questions  AJAX Interview Questions (24)
 Ruby on Rails interview questions  Ruby on Rails Interview Questions (21)
 Scripts AllOther interview questions  Scripts AllOther Interview Questions (48)
Question
Write a simple  regular expression to match an IP address, 
e-mail address, city-state-zipcode combination. 
 Question Submitted By :: CGI-Perl
I also faced this Question!!     Answer Posted By  
 
Answer
# 1
(/(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/ && $1 < 255 &&
$2 < 255 && $3 < 255 && $4 < 255 )
 
Is This Answer Correct ?    18 Yes 4 No
Abhishek Sagar
 
Answer
# 2
ip_pattern = r'\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b' 
Is This Answer Correct ?    16 Yes 5 No
Vyvyan
 
 
 
Answer
# 3
/(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/


ip=$1;
 
Is This Answer Correct ?    25 Yes 18 No
Mukesh
 
Answer
# 4
The question is not properly framed. A regex is specific to
a language to some extent. Lets frame it more properly and
create some test cases:
1. Writing regex for Perl to identify an IP address.
2. IP address must be a "true" IP address.
3. It must not match anything more than an IP addresses.
4. Must pass the following tests:
a)0.0.0.0: Pass: This is a valid class A address, though a
reserved address. You may not see it often but nevertheless
it is a valid address. See
http://www.lincoln.edu/math/rmyrick/ComputerNetworks/InetRef
erence/26.htm
b)1.1.1.1: Pass
c)255.255.255.255:Pass
d)1.1.1.11111:Fail
e)256.1.1.1:Fail
f)256.256.256.256:Fail
g)-1.-1.-1.-1: Fail
h).... (four dots without any digits in between)

Another test can be presence of extra zeros, which can be
fine or not fine depending upon the OS. For example
01.01.01.01 should or should not be accepted? But we will
ignore it for the time being in our analysis.

Here is an analysis of the solutions given above as well as
my additional solutions:
1. /([0-255])(\.)$1\1$1\1$1/; : This works for egrep and
possibly vi and other *nix tools such as emacs. This does
*not* work for Perl because [0-255] will match
digits '0','1', '2' and '5' only. It will not match 63.

2. /((\d{1,3})(\.)){3}\d{1,3}/: Written for Perl as
obviously {} syntax is not available for many other
scripting languages. This does not check the semantics of
IP addresses. Fails tests d, e, f above.

3. (/(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/ && $1 <
255 && $2 < 255 && $3 < 255 && $4 < 255 ): Is almost
correct. Only fails d in above tests. However, it uses
logical expressions and is not a pure regular expression.
Checking for word boundaries will correct it. For example,
(/\b(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\b/ && $1 <
255 && $2 < 255 && $3 < 255 && $4 < 255 ) will pass d
above.

4. r'\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}
(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b': Passes all the
tests. This is the best answer.

5. /^([1-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|[1-9]
\d|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25
[0-5])\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$/: Fails
test a. But only because it was meant to eliminate 0.0.0.0.
Otherwise this is okay, though a little verbose. #4 above
can be modified slightly to take care of 0.0.0.0 case and
is less verbose.

Hope this helps.

Regards,
Santosh
 
Is This Answer Correct ?    6 Yes 1 No
Santosh
 
Answer
# 5
sub validate_ip {

my $ip = shift;

if ( $ip =~ m/^([1-9]|1[0-9]{1,2}|2[0-4]\d|25[0-5])(\.([0-9]|1[0-9]{1,2}|2[0-4]\d|25[0-5])){3}$/ ) {
return 0;
} else {
return 1;
}
}

validate_ip("127.0.0.1");
 
Is This Answer Correct ?    4 Yes 3 No
Jayakumar.b
 
Answer
# 6
Below Solution is applicable IP only :

(/(\d{1,})\.(\d{1,})\.(\d{1,})\.(\d{1,})/ && $1<256 &&
$2<256 && $3<256 && $4<256)
 
Is This Answer Correct ?    1 Yes 0 No
Arup
 
Answer
# 7
Hi all,
Here is the regular expression for matching the valid ip
address.
^(25[0-5]|2[0-4]{0,1}[0-9]{0,1}|1[0-9]{1,2}|[0-9]{1,2})[.](25[0-5]|2[0-4]{0,1}[0-9]{0,1}|1[0-9]{1,2}|[0-9]{1,2})[.](25[0-5]|2[0-4]{0,1}[0-9]{0,1}|1[0-9]{1,2}|[0-9]{1,2})[.](25[0-5]|2[0-4]{0,1}[0-9]{0,1}|1[0-9]{1,2}|[0-9]{1,2})$

Let me know your comments.

Thanks,
TReddy
 
Is This Answer Correct ?    0 Yes 0 No
Treddy
 
Answer
# 8
All those above answer are wrong...because all of them take

0.0.0.0 as valid IP address which is not the case...with
computer science ...

Developed By Anshuman sengupta

Reviewed by Arnab Bose

Tested by Avishek chatterjee

-- WHAT DORKS ! and Its tested, No wonder we need
versions/upgrades !
 
Is This Answer Correct ?    0 Yes 0 No
Ajay
 
Answer
# 9
$ip="0.25.55.25";

if($ip=~/([0-2]{0,1}[0-5]{0,2})\.([0-2]{0,1}[0-5]{0,2})\.([0-2]{0,1}[0-5]{0,2})\.([0-2]{0,1}[0-5]{0,2})/){
print $ip;
}

This will match for all ip address
 
Is This Answer Correct ?    0 Yes 0 No
Saravanan
 
Answer
# 10
{(^[1-9]|^[0-9][0-9]|^1[0-9][0-9]|^2[0-5][0-5])\.([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-5][0-5])\.([0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-5][0-5])\.([0-9]$|[0-9][0-9]$|1[0-9][0-9]$|2[0-5][0-4]$)} 
Is This Answer Correct ?    0 Yes 0 No
Tclgeek
 

 
 
 
Other CGI Perl Interview Questions
 
  Question Asked @ Answers
 
Write a script to reverse a string without using Perl's built in function Nokia 8
What is the difference between $array[1] and @array[1]?   1
What is the difference between for & foreach, exec & system? Photon 9
Why do you program in Perl?   4
What is the difference between having a parenthesis after module name and without parenthsis after module name?? i.e Package::Module(); and Package::Module;   1
i have a folder called 'error' and in that, i have error log files which are generated by the build, now i want to findout the string 'error' from each log file and that error has to be copied into the another file called 'analysis'. how do you do this in perl? HP 5
Explain the difference between use and require?   4
I have created a CGI-based page,after entering all the values in to the fields, How to get the output on the web browser using Perl   4
How to find out the version of PERL being installed on your LINUX machine. Mind-Tree 4
what r the different type of function in perl ??? Symphony 1
while (my ($key, $value) = each(%ENV)) { print "$key - $value\n"; } What does the above sample code produce? What function do you use for reading a list of files within a directory? my %hash = ( 'hi' => {'hello' => 'all'}, 'bye' => {'later' => 'gone'} ); print $hash{'hi'}; What is printed when the above code is executed? sub new { my $pkg = shift; my $test = {'name' => shift;}; ???? return $test; } Which one of the following replaces "????" in the above code in order to cause the function new to return an object of type "Test"? while (<STDIN>) { ???? print "$_\n"; } Which one of the following statements causes the above code to strip all whitespace from the end of all lines of input and to print the resulting lines to standard output while (my ($key,$value) = each(%hash)) { print "$key - $value\n"; delete $hash{$key}; } open(FILE,"<file.dat"); my $data = ''; { local $/ = undef; $data = <FILE>; } close(FILE); my $foo = 21; $foo <<= 5; $foo >>= 4; print $foo; @arr = (1,2,3); {local $" = "\n"; print "@arr\n"; } my $line = "Hello World"; substr($line,5,2) = "abc"; print $line; Why is sprintf rarely used in perl in comparison to similar (or the same) functions in other languages? my $subRef = sub {print shift;}; How is the subroutine above called with one parameter? How can the values of an associative array be placed in sorted order in a new array? What function is often necessary for building data structures to be passed to low-level routines such as ioctl and fcntl? sub foo { if (shift(@_) > 0) { shift; } } print foo(10,5); print foo(-10,5); What does the above sample for (my $i = 1; $i <= 3; $i++) { print 1..$i; print "\n"; } my $data = 5**3 * 12,2+2; print $data; sub foo { my $value = shift; if ($value) { print 1; shift; } else { return shift(@_) + 3; } } print foo(10,20); What is printed as the result of executing the above code? $var = 20; sub s1 { print "$var "; } sub s2 { local $var = 10; s1;} sub s3 { my $var = 30; s1;} s3; s2; s1; On systems that record file ownership, how may the owner of a file be identified? Which one of the following sets $y to be a copy of $x with every occurrence of foo changed to bar? Which one of the following is an array literal that represents a 4-element array containing the numbers 1, 4, 2, and 6? sub foo {2*shift || 'x';} printf ("%s %s %s", foo(5),foo(0),foo(-5)); What does the above sample code print? Suppose $x contains a number. Which one of the following statements sets $y to be a string containing the octal value of $x?   2
Explain the difference between my and local?   2
 
For more CGI Perl Interview Questions Click Here 
 
 
 
 
 


   
Copyright Policy  |  Terms of Service  |  Articles  |  Site Map  |  RSS Site Map  |  Contact Us
   
Copyright 2013  ALLInterview.com.  All Rights Reserved.

ALLInterview.com   ::  KalAajKal.com