Perl help


I attended an interview today and they asked me the below questions. Please help on them.

1. How to sort an array without using built in?
2. How to sort an hash with values ?
3. Tell the login for permutation in Perl?
4. Regex for email address, web url , state-city-zipcode format
5. what is the difference between ./ and perl ?

Who is Participating?
ozoConnect With a Mentor Commented:
perl doesn't ignore the #! line
ozoConnect With a Mentor Commented:
1 you might use a custom module, depending on why you want to sort an array without using built in
2 sort{$hash{$a}<=>$hash{$b}, or use Sort::Hash::Values;
3 I don't understand what you are asking.
4 use Regexp::Common qw[Email::Address zip];
5 depends on the #! line and mode of
wilcoxonConnect With a Mentor Commented:
1) I suspect this was a pointless interview question.  I'm guessing they want to make sure you understand what sort does.  In perl, there is never a reason not to use sort (though you do sometimes want to give it a custom coderef to do the sorting).
2) ozo answered
3) I don't understand what you are asking either
4) it is very difficult to create a regex to match email addresses - Regexp::Common is by far the best bet
quick-and-dirty URL regex: ($method, $site, $path, $query) = m{(\w+)://([^/]*)/([^&]*)(&.*)?$}
5) ./ will run the command using whatever is specified on #! while perl ignores the #! line and runs the code

For instance: starts with #!/usr/local/bin/perl -w
you also have perl at /usr/bin/perl and 'which perl' gives you that one
./ will effectively run /usr/local/bin/perl -w
perl will run /usr/bin/perl
Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Interesting.  I never noticed that before.  It's definitely contrary to what I would expect (and, iirc, normal shell processing mechanics (but it's been a long time since I've done much shell scripting so I may be misremembering)).
from `perldoc perlrun`
       The "#!" line is always examined for switches as the line is being parsed.
       If the "#!" line does not contain the word "perl" nor the word "indir"
       the program named after the "#!" is executed instead of the Perl
       interpreter.  This is slightly bizarre, but it helps people on machines
       that don't do "#!", because they can tell a program that their SHELL is
       /usr/bin/perl, and Perl will then dispatch the program to the correct
       interpreter for them.

But I would not consider it reasonable to expect knowledge of such details on an interview question unless the interviewee is given access to the man pages
magentoAuthor Commented:
Dear Experts,

Thank you so much for your time . I am going thru the answers.
The question 3 is , they asked me to show logic in perl to do the combination ...

wilcoxonConnect With a Mentor Commented:
Ah.  I get it now - the logic of permutation.  That's another general algorithm question.  You should be able to Google for most basic algorithm questions:

1) bubble sort (you don't specify the type of sort) -
3) permutation -
The correct way to do permutations would be Algorithm::Permute (but I doubt that's the answer they wanted).
3) I'm still not sure I understand.  Do you want permutation or combination?  And would you want a singular one (if so, which) or plural all (if so, in what order)?   And which logic?
magentoAuthor Commented:
Hi Ozo ,

Sorry i really dont know this . This was asked to me in an internal interview. So i thought of learning the answers from experts.

I think they asked me how you will do permutation logic in perl .

You might do a particular permutation like
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.