[WpProQuiz 2]
[WpProQuiz_toplist 2]
Perl Quiz on Data Types
Learning through sharing
[WpProQuiz 2]
[WpProQuiz_toplist 2]
Here is the collection of most frequently asked Perl interview questions. Perl Basics What is CPAN? Its uses? What does “use strict” , “use vars” […]
There will be some situations where you will not be allowed:But you wish to send mail to your outside friend. Either you will use some proxy settings or will request administrator to allow sending or receiving any mail from outside. What if we can do it using an in-built command or through script?
Yes it is possible and it’s much more easy if you are using Linux rather than Windows (I know even now most of us are using Windows to read this article 😉 ).
This code will work only at Linux variants. If you want to use sendmail in Windows and Linux also with command line option instead of writing a Perl script, you need to download sendEmail readymade script written in Perl by Brandon Zehm .
Let’s see the explanation using codes:
[perl]
#!/usr/bin/perl
#################################################################################
# Author: Sanjeev Jaiswal
# Date: July, 2012
# Description: This script will use inbuilt command “sendmail” with -t option mainly.
# You can send an email to anyone from any valid email id, even if it’s not you.
# You can use it to prank your friends too or to do some serious stuffs.
#################################################################################
use strict;
use warnings;
# You can put as many email ids as you wish in to, cc, bcc
# But, be sure to use commas under one string. All mail ids are fake here, used just for demo 😛
# except admin@aliencoders.org 😉
my %config = (mail_from =>’ranjan2012@gmail.com’,
mail_to => ‘jaszi@gmail.com, sanjeejas@gmail.com’,
mail_cc => ‘jasse@gmail.com, jassi@hotmale.com’,
mail_bcc => ‘nazibal700@gmail.com, jasze@gmall.com’,
mail_subject => “Just testing Sendmail”
);
#Call method to send preformatted email
mail_target();
sub mail_target{
#Use \n\n to make sure that it will render as HTML format
my $message = “From: $config{mail_from}\nTo: $config{mail_to}\nCc: $config{mail_cc}\nBcc: $config{mail_bcc}\nSubject: $config{mail_subject}\nContent-Type: text/html;\n\n”;
$message.= “<strong>Hi Dear,</strong><br>If someone knows your email id, he/she can use it without your permission if he/she is using sendmail under Linux :D<br> Only issue is it says via which server. Through this you can find out from which server and location someone has used your email id.\n”;
my $MAIL_CMD = “/usr/sbin/sendmail -t -i”;
if(!open(SENDMAIL, “| $MAIL_CMD”)){
print “Unable to open an input pipe to $MAIL_CMD:”;
exit(1);
}
print SENDMAIL $message.”\n”;
close(SENDMAIL);
}
[/perl]
Masquerading Sendmail configuration (sendmail.mc not sendmail.cf)
Open your sendmail config file which will be located at /etc/mail/sendmail.mc:
[vim]
# vi /etc/mail/sendmail.mc
[/vim]
Append/add/modify these lines as follows: (usually these lines will be commented, so just uncomment it)
[vim]
MASQUERADE_AS(aliencoders.org)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
MASQUERADE_DOMAIN(aliencoders.org)dnl
[/vim]
Before restarting the server, let’s sendmail.inc make sendmail configuration file ready using m4 command. The m4 utility is a macro processor intended as a front end for C, assembler, and other languages. Type man m4 in Linux box for more details. So, don’t edit sendmail.cf manually.
[vim]
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
# /etc/init.d/sendmail restart
[/vim]
Disclaimer: This article is for educational purpose only. We are not responsible if you get sued or fired from your company while using this script or such knowledge. Use it at your own risk!
Welcome to Perlistan world! I have been using Perl (Perl 5.10 specifically) from last 1 year and I am really fond of this programming language. There are hell lots of features exist for Perl but I have written only few which I felt is important and interesting for beginners.
Introduction
Perl (Practical Extraction & Report Language) is the Swiss Army knife for scripting languages(rather call it programming language): powerful and adaptable. It was first developed by Larry Wall, a linguist working as a systems administrator for NASA in the late 1980s, as a way to make report processing easier.
Since then, it has moved into a large number of roles: automating system administration, acting as glue between different computer systems; and, of course, being one of the most popular languages for CGI programming on the Web.
Why did Perl become so popular when the Web came along?
There may be at least two most important reasons:
First, most of what is being done on the Web happens with text, and is best done with a language that's designed for text processing. More importantly, Perl was appreciably better than the alternatives at the time when people needed something to use. C is complex and can produce security problems (especially with untrusted data), Tcl can be awkward and Python didn't really have a foothold.
Second: It also didn't hurt that Perl is a friendly language. It plays well with your personal programming style. The Perl slogan is “There's more than one way to do it,'' The growth of Internet also complemented Perl. The initial attempt at providing dynamic content was through CGI (even now CGI is used extensively), and Perl's remarkable text handling features made it a quick fit. CGI programming is now synonymous with Perl programming.
CPAN – Comprehensive Perl Archive Network, was set up to share Perl code. Perl supports modules and chances are that for 99% of the programming requirements, there is already a tested module in CPAN (for the remaining 1%, write modules and contribute to CPAN!). Using modules really mask the complexities of adhering to pre-defined standards and frees you to concentrate on your tasks – no point in re-inventing the wheel. Now, you have modules which handles graphics, CGI etc… You can also embed Perl code in your C/C++ programs. A very popular embedded Perl architecture is mod_perl for Apache web server.
Data manipulation
Perl can handle strings, dates, binary data, database connectivity, streams, sockets and many more. This ability to manipulate multiple data types help immensely in data conversion (and by the way, it is much faster than PL/SQL!). Perl also has provision for lists (or arrays) and for hashes (associative arrays). Perl also supports references, which are similar to the pointers in C. Lists, hashes and references together make it possible to define and manipulate powerful custom-defined data-types.
Portability Most of the Perl code will run without any change in Unix or Windows or Macintosh. Typical changes you might have to make include specifying file paths and use of low-level OS specific functions.
CGI CGI.pm. Period. Almost all CGI programs written today are using the CGI.pm module from CPAN. Even before this was written, people used to use Perl extensively for CGI programming. CGI.pm made the process streamlined and easy, even for beginners. The graphics library GD is used extensively in producing dynamic web charts. Ever since Kernighan and Ritchie came out with C programming language, people have started learning almost any programming language with the obligatory "Hello World" program. Let us do the same!
Here is the basic perl program that we'll use to get started.
[perl] #! /usr/bin/perl
# prints Hello world.
use strict;
use warnings;
print 'Hello world.'; # Print a message [/perl]
#! is called sh-bang (she bang 😉 ). Always let it be your first line of code in your program. Write the location of executable perl here. Always try to write use strict and use warnings in your program. It will minimize error and you will be following standard coding rules !
Comments Perl treats any thing from a hash # to the end of line as a comment. Block comments are not possible. So, if you want to have a block of comments, you must ensure that each line starts with #.
Statements Everything other than comments are Perl statements, which must end with a semicolon, like the last line above. Unlike C, you need not put a wrapping character \ for long statements. A Perl statement always ends with a semicolon.
Running Perl Write a small program using a text editor, and save it. The first line of the program is a typical shell construct, which will make the shell start the interpreter and feed the remaining lines of the file as an input to the interpreter. After you've entered and saved the program make sure the file is executable by using the command
[perl]
chmod u+x perlfile
[/perl]
at the UNIX prompt, where perlfile is the filename of the program (of course with .pl or .pm extension mostly). Now, to run the program, just type any of the following at the prompt.
[perl]
perl perlfile
[/perl]
If something goes wrong then you may get error messages, or you may get nothing. You can always run the program with warnings using the command
[perl]
perl -w progname
[/perl]
at the prompt. This will display warnings and other (hopefully) helpful messages before it tries to execute the program. To run the program with a debugger use the command
[perl]
perl -d progname
[/perl]
When the file is executed Perl first compiles it and then executes that compiled version. Unlike many other interpreted languages, Perl scripts are compiled first, helping you to catch most of errors before program actually starts executing. In this context, the -w switch is very helpful. It will warn you about unused variables, suspicious statements etc.