1.
#!/usr/bin/perl -w
print "Content-type: text/html\n\n";
# This will print "Hello, World"
print "Hello, world\n";
print("Hello, world\n");
print "Hello, world to all\n";
2.
#!/usr/bin/perl
print "Content-type: text/html\n\n";
$a = 10;
print "Value of a = $a\n";
print 'Value of a = $a\n';
3.
#!/usr/bin/perl -w
print "Content-type: text/html\n\n";
$a = 10;
$var = <<"EOF";
This is the syntax for here document and it will continue
until it encounters a EOF in the first line.
This is case of double quote so variable value will be
interpolated. For example value of a = $a
EOF
print "$var\n";
$var = <<'EOF';
This is case of single quote so variable value will not be
interpolated. For example value of a = $a
EOF
print "$var\n";
4.
#!/usr/bin/perl -w
$result = "This is \"number\"\n";
print "$result",' adding...';
print "\n\$result\n";
5.
#!/usr/bin/perl
use strict;
use warnings;
my $name = "A useful tool in natural language processing is concordance. This allows a specific string to be displayed in its immediate context whereever it appears in a text. For example, a concordance program identifying the target string the might produce some of the following output. Notice how the occurrences of the target string line up vertically. ";
my @person = split(/ /, $name);
#print "$person[0]\n"
foreach my $val (@person) {
print "$val\n"
}
exit 0;
6.
#!/usr/bin/perl -w
use strict;
# multi dimention array:
my @array1=(
# ["1","2", ["Amit"]],
["1","2"],
["3","4"],
["5","6"]
);
#print "$array1[0][2][0]\n";
print "$array1[0][0]\n";
# multi dimention array referance:
my $array1ref = [
["1","2"],
["3","4"],
["5","6"]
];
print "$array1ref->[0][0]\n";
7.
#!/usr/bin/perl
use strict;
use warnings;
open (fh2, "file1") || die "Error opening file1: $!";
#open (fh2, "/etc/passwd") || die "Error opening file1: $!";
my @array1;
while (<fh2>){
push @array1, [ split ]; # push function to push the data in array1 from $_
#push @array1, [ split/:/];
}
foreach (@array1){
print "@$_[0]\n";
print "@$_[1]\n";
#print "@$_\n";
}
8.
#!/usr/bin/perl
use strict;
use warnings;
open (fh2, "passwd") || die "Error opening file1: $!";
my @array1;
while (<fh2>){
push @array1, [ split/:/];
}
foreach (@array1){
print "@$_";
}
print "\nPrinting an extra line: $array1[0][0]\n";
9.
#!/usr/bin/perl
# Author: Amit Mund
# Date: 17.07.2014
# Purpose: Explain Lists, Slices, Ranges, etc.
use warnings;
use strict;
# qw : quote word
#Scalars(single values), Arrays(lists), Hashes(key/value pairs)
print (qw(Boston Charlotte newark miami)); # This is removing all the blank space.
print "\n";
print (qw(Boston Charlotte newark miami)[0,3]); # will print 0th and 3rd index value. [Bootonmiami]
print "\n";
print (qw(Boston Charlotte newark miami)[0..2]); # will print the index values from 0 to 3
print "\n\n";
##
my @uscities = qw(Boston Charlotte newark miami Austin Dallas Houston);
print "@uscities[1..$#uscities]\n";
my @eastcoastcities = @uscities[0..3,5];
print ("East Cost Cities: ","@eastcoastcities\n");
print ("Other Cities:", "@uscities[4..$#uscities]\n\n");
10.
#!/usr/bin/perl -wl
use strict;
# you can use the same name in a different type of variables
#scalars = single values ($)
#Arrays = lists of scalars (@)
# Hashes = key/values pairs
# NOTE: $fname != @fname and we can have both at the same time.
my $carmanufactures = "This is scalar values";
my @carmanufactures = ("Honda","Toyota","Nissan", "Lexus","BMW"); # begining with 0
print "$carmanufactures";
print "$carmanufactures[0]";
print "$carmanufactures[1]";
print "$carmanufactures[2]";
print "$carmanufactures[3]";
# perl keep the working data into memory.
print "This arrays contents: 0 to $#carmanufactures, mean total $#carmanufactures+1";
# Note: leangth of arrays using $#arrayname
print "Here is the full arrays: @carmanufactures[0,1,2,3,4]";
# following also works
print "Here is the full arrays: @carmanufactures[0..4]";
# I believe the best way is following in these 3.
print "Here is the full arrays: @carmanufactures[0..$#carmanufactures]";
11.
#!/usr/bin/perl
use warnings;
use strict;
# NOTE: For interger use ==, <, >, <=, >=
if (1 < 2 && (5 < 4 || 5 > 4)) {
print "I am at if block.\n";
}
## string test:
# NOTE: for string eq, ne
# if, elsif, else, unless [elsif, to use within a sub-if block.]
my $fname = "amit";
my $name = "amit";
if ( $name ne $fname) {
print "$fname is same as $name\n";
}
else {
print "I am at else block.\n";
}
# unless is for negetation:
my $value1 = "1";
my $value2 = "2";
unless ($value1 == $value2) {
print "$value1 is not equal to $value2\n";
}
# one line if test:
print "one liner if\n" if $value1 != $value2;
#END
12. fileio1.pl
#!/usr/bin/perl
use warnings;
use strict;
# open function for file handel.
# die function to cache any error.
# $! is the perl variable to keep the error.
my $min = 1;
my $max = 20;
my $fname = "Amit mund";
my $dob = "23/04/1982";
# defining OUTFILE as a fh.
open (OUTFILE, ">data1") || die "problems: $!"; # $! perl inbuilt variable for error return.
for ($min..$max) {
print OUTFILE "$fname and DOB = ";
print OUTFILE "$dob\n"
}
#END
13. fileio2.pl
#!/usr/bin/perl
use warnings;
use strict;
#my $OUT = "OUTFILE";
#my $filename = "/proc/cpuinfo";
my $filename = "data1";
open (INFILE, "$filename") || die "problems: $!";
#while (<INFILE>){
# print "$_";
#}
my @data1contains = <INFILE>; # assoicate a file to an array.
foreach (@data1contains){
print "$_";
}
#END
14. FileIO3.pl
#!/usr/bin/perl
use warnings;
$IN = "INFILE";
$OUT = "OUTFILE";
$filenamein = "/proc/cpuinfo";
$filenameout = "data2";
open ($IN, "$filenamein") || die "error while opening the file: $!";
open ($OUT, ">$filenameout") || die "error while writing the file: $!";
@data1contents = <$IN>;
foreach (@data1contents){
if (/^processor/ || /^core id/ || /model name/){ # Nesting an if statement with regex
#print $OUT "$_";
s/model name/cpu/; # Replace "model name with cpu"
@cur_data=$_;
print $OUT "@cur_data";
}
}
#END
15. File04.pl
#!/usr/bin/perl
use warnings;
my $PROCESS;
open ($PROCESS, "ps aux | grep -i apache |") || die "process error $!";
@PROCESS_DATA = <$PROCESS>;
#print "@PROCESS_DATA"
foreach (@PROCESS_DATA){
print "$_"
}
# END
16. fileIO04A.pl
#!/usr/bin/perl
use warnings;
my $PROCESS;
open ($PROCESS, "ps aux|") || die "process error $!"; # need to end with | pipe as per the input for $PROCESS.
@PROCESS_DATA = <$PROCESS>;
foreach (@PROCESS_DATA){
if (/apache/){ # <----- Regex.
print "$_"
}
}
17. FileIO4_B.pl
#!/usr/bin/perl
use warnings;
$FH = "FileReadWrite";
$FILENAME = "data1";
$APPEND_OF_FILE = "Appended string\n";
# +< for read and append mode, and it must be in quote.
open ($FH, "+<$FILENAME") || die "file error: $!";
@dataOfFile = <$FH>;
foreach (@dataOfFile){
#print $FH "$_";
}
print $FH "$APPEND_OF_FILE";
18. FileIO05.pl
#!/usr/bin/perl
use warnings;
#$DIR = "/home/amit/Documents/perl";
$DIR = "/etc";
$DH = "Handle";
opendir ($DH, "$DIR") || die "Error opening dir: $!";
@dirlist = readdir($DH); # list the first level of contents.
foreach (@dirlist){
#if (/^[x-z]/){ # regex of start with x-z letters.
# print "$_\n";
#}
print "$_\n";
}
#closedir ($DH); # Good to close the handler.
#@dirlist = `ls -A $DIR`;
#foreach (@dirlist){
# print "$_\n";
#}
#END
19.
#!/usr/bin/perl
use warnings;
#use strict;
#my $mem = perl -wln -e '@mem1 = split /:/, $_; if (/DirectMap2M/){print $mem1[1]} ;' /proc/meminfo
my $MEM_FH1 = "memory_FH";
my $mem_file = "/proc/meminfo";
open ($MEM_FH1, "$mem_file") || die "problem opening file: $!";
my @mem_data_contains = <$MEM_FH1>;
foreach(@mem_data_contains){
if (/^MemFree/){
#my @mem_value = split /:/, @mem_data_contains;
my @mem_free_value = split /\s+/,$_;
my @mem_free_value1 = $mem_free_value[1] * 1024; # in bite conversion
print "Free Memory = @mem_free_value1\n";
#print @mem_data_contains;
}
}
foreach(@mem_data_contains){
if (/^MemTotal/){
#my @mem_value = split /:/, @mem_data_contains;
my @mem_total_value = split /\s+/,$_;
my @mem_total_value1 = $mem_total_value[1] * 1024; # in bite conversion
print "Total Memory = @mem_total_value1\n";
#print @mem_data_contains;
}
}
#my $Free_percent =
20.
#!/bin/bash/perl
use strict;
use warnings;
#my $min = 1;
#my $max = 10;
#my $PROD_NAME = "Testing the perl foreach loop.";
my @array1 = ("Amit", "Kumar", "Mund", "Testing");
foreach (@array1) { # just need to pass the array value.
# body...
print "$_ "; # $_ is an internal variable that keep the complete value.
}
$#array1 +=1;
print "\nTotal arrays element = $#array1";
print "\n";
21.
#!/usr/bin/perl -wl
use strict;
# Note: in hash it need to even number of objects.
my %make_model = (
"Honda","city",
"Maruti","swift"
);
print $make_model{"Maruti"};
#### The nice way of writing the hash:
my $player = "Venus";
my %player_country = (
Venus => "USA",
Sharapova => "Russia",
);
printf "$player represents: ";
print $player_country{"$player"};
###
my @num_of_players_keys = keys %player_country;
my @num_of_players_values = values %player_country;
print "The keys are: @num_of_players_keys[0..$#num_of_players_keys]";
print "The values are: @num_of_players_values[0..$#num_of_players_values]";
22.
#!/usr/bin/perl
#
# The traditional first program.
# Strict and warnings are recommended.
use strict;
use warnings;
# Print a message.
print "Content-type: text/html\n\n";
print "Hello, World!\n";
=begin comment
This is all part of multiline comment.
You can use as many lines as you like
These comments will be ignored by the
compiler until the next =cut is encountered.
=cut
=begin comment
for multiline comment it start with: " =begin" and end with "cut" after
the =
=cut
print "Hello, world\n";
print 'Hello, world\n';
23.
#!/usr/bin/perl
print "Content-type: text/html\n\n";
my $str = <<EOM;
<html>
<head>
<title>CGI Perl Example</title>
</head>
<body>
<h1>CGI Perl Example</h1>
<p>CGI Perl Example</p>
</body>
</html>
EOM
print $str
24. perldb.pl
#!/usr/bin/perl
use warnings;
use strict;
use DBI;
#Setp1 - creating connection object
my $dsn = 'DBI:mysql:thenewboston'; # module:db_engine:db_name
my $user = 'root';
my $pass = 'YourPassword';
my $host = 'localhost';
my $conn = DBI->connect($dsn,$user,$pass) || die "Error connecting" . DBI->errstr;
# step 2 - define query
my $query1 = $conn->prepare('SELECT id,name FROM user') || die "Error preparing query" . $conn->errstr;
# setp 3 - execute query
$query1->execute || die "Error executing query" . $conn->errstr;
# step 4 - return results
my @results;
while (@results = $query1->fetchrow_array()) {
my $id = $results[0];
my $name = $results[1];
#my $name = $results[2];
print "$id,$name\n"
}
# trying for another query too:
my $query2 = $conn->prepare('SHOW TABLES') || die "Error preparing query" . $conn->errstr;
$query2->execute || die "Error executing query" . $conn->errstr;
my @results2;
print "\nFollowing are the tables at thenewboston DB:\n";
while (@results2 = $query2->fetchrow_array()) {
my $tables = $results2[0];
print "$tables\n"
}
25.
#!/usr/bin/perl
use warnings;
use strict;
my @array1 = ("1","2","3","4");
print "@array1\n";
# pop function, to remove the last value.
my $ppop = pop @array1; # over here $ppop will be carring the removed value.
print "@array1\n";
print "$ppop\n"; # printing the remoed value.
# NOTE: if you don;t want you can just pop the @array1 and print the same again and it will remove the last one.
pop @array1;
print "@array1\n";
#my $ppop = pop @array1;
#print "@array1\n";
#print "$ppop\n";
#END
26.
#!/usr/bin/perl
use warnings;
use strict;
my @array1 = ("1","2","3","4");
print "Original array1 values: @array1\n";
# pop function, to remove the last value.
my $ppop = pop @array1; # over here $ppop will be carring the removed value.
print "Value after doing a pop: @array1\n";
print "What is ppop is carring now: $ppop\n"; # printing the remoed value.
# Now push the another value;
push @array1, $ppop; # adding back the removed one.
print "\nValue after doing a push of the ppop value: @array1\n";
# adding one more value.
push @array1, "5";
print "Pushing one more eliment: @array1\n";
# adding one more value.
push @array1, "Amit";
print "Pushing one more eliment: @array1\n\n";
# Adding the element(s) at the beginning of the array.
my $fname = "Amit";
my $mname = "Kumar";
my $lname = "Mund";
unshift (@array1, "$fname", "$mname", "$lname");
print "@array1\n";
# Removing the 1st element from the array
my $s_shift =shift @array1;
print "@array1\n";
print "$s_shift\n";
## "sort", For sorting the string.
my @array2 = ("Amit","kumar", "Mund", "Bitu");
my @sort_array2 = sort @array2;
print "@sort_array2\n";
# We can use the same array name after doing sort and assign the same.
@array2 = sort @array2;
print "@array2\n";
#END
27.
#!/usr/bin/perl
use warnings;
use strict;
# @ARGV variable [ array type spical variable ]
# print "$ARGV[0]\n";
# print "Trying to print all the input argument: @ARGV[0..$#ARGV]\n";
my $REQ = 3;
my $BADARGS = 165;
$#ARGV += 1; # NOTE: No need to use my or our for ARGV. If you give, it will show error.
unless ($#ARGV == 3){
print "$0 requires $REQ variables: ";
print "ERROR! Insufficent argument.\n";
exit "$BADARGS";
}
print "Correct number of argument $#ARGV has been passed.\n";
print "$ARGV[0] $ARGV[1] $ARGV[2]\n";
print "printing with array type : @ARGV[0..$#ARGV]\n"; # saw the same output at training too.
# perldoc -f exit; for more help.
#END
28.
#!/usr/bin/perl -wl
# w: option for the warning.
# l: option for the line group.
$fname = "Amit";
$lname = "Mund";
$fullname = "$fname $lname";
print "$fname $lname";
print "$fullname";
# NOTE: Must end with a semi-collon;
29.
#!/usr/bin/perl
# split, join and input files from shell.
use warnings;
use strict;
while (<>){ # reading by a stdin. [ file name as arg ]
my @username = split /:/, $_;
if(/false/){
print "$username[0]\n";
}
}
# perl -wln -e '@array1 = split /:/, $_; print $array1[0]' passwdFile
# perl -wln -e '@mem1 = split /:/, $_; if (/DirectMap2M/){print $mem1[1]} ;' /proc/meminfo
# 8226816 kB
#END
30.
#!/usr/bin/perl -w
use strict;
printf "Please enter your name: ";
my $fname = <STDIN>; # For standard input, you can declare the variable at the same time.
chomp($fname); # To remove the last newline character.
print "\n***************************************";
print "\nHello $fname, how are you doing today?\n";
print "***************************************\n\n";
31.
#!/usr/bin/perl -w
use strict;
testsub(); # This is how to call a sub-routines, Its the same as function
# and its not needed to be after declating this sub-routines.
sub testsub { # Need to start with "sub"
my $name = "Amit Mund";
print "Hello $name\n";
}
# Note: you can pass the argument too in the sub-routines
testsub1("Amit Mund", "Bitu");
sub testsub1 {
print "Following is an example of getting the value as argument from testsub2\n";
print "Hello: $_[0]\n"; # $_ is the default place holder.
}
# Two argument in the "foreach" loop and printing Hello Amit and Hello Bitu.
testsub2 ("Amit","Bitu","Tutu");
sub testsub2 {
foreach (@_){
print "Hello $_\n";
}
}
# NOTE: @_ is the for all the array value passed on the argument.
testsub3 ("Amit","Bitu","Tutu");
sub testsub3 {
print "Hello @_\n";
}
32.
#!/usr/bin/perl
use warnings;
use strict;
# file handling:
open (fh1, ">> sub2.log") || die "Error opening the file: $!";
my $etcdir = `ls -l /etc/passwd`;
chomp ($etcdir); # to delete extra newline.
my $message = "Launching sub2.pl";
log_message("$message");
log_message("$etcdir");
log_message(`uptime; who`);
sub log_message{
my $current_time = localtime;
print "$current_time - $_[0]","\n";
print fh1 "$current_time - $_[0]", "\n";
}
#perl -e '$decimal=10, print $decimal;'
#NOTE: perl -e always need to be in single quote, e.g:
# perl -l -e '$current_time = localtime, print $current_time;'
33.
#!/usr/bin/perl
use warnings;
use strict;
# Printing the arguments.
#print "$ARGV[0]\n";
#print "Trying to print all the input argument: @ARGV[0..$#ARGV]\n";
# printing value at hex.
#perl -wl -e '$hex = sprintf("0x%x",15), print $hex;'
#######################################
# NOTE: Try to always use the variable.
######################################
# Following is the "c" style for loop.
#my $min = 1;
#my $max = 100;
#my $i;
#
#for ($i=$min; $i<=$max; $i++){
#
# print "$i\n";
#}
my $min = 1;
my $max = 100;
my $i=0;
for ($min..$max){
print "For loop test\n";
}
# can put the same in a single line too:
for ($min..$max){$i++; print "$i\n";}
#END
34.
#!/usr/bin/perl
use warnings;
#use strict;
my $IN = INFILE;
my $infile = passwdFile;
open ($IN, "$infile") || die "problems: $!";
while (<$IN>){
print "$_";
}
#END
35.
#!/usr/bin/perl
use warnings;
@mem = split /:/, $_; if (/DirectMap2M/){print "$mem1[1]";} ;' /proc/meminfo
print @mem;
@myls = `ls -l`;
print @myls;
36.
#!/usr/bin/perl
use warnings;
use strict;
print "Content-type: text/html\n\n";
# syntax:
#while (condition){
#body;
#}
my $value1 = 1;
my $value2 = 20;
while ($value1 <= $value2){
print "$value1,";
$value1 +=2;
}
print "\n";
# syntax:
#until (condition){
#body;
#}
my $value11 = 1;
my $value22 = 20;
until ($value22 <= $value11){
print "$value22,";
$value22 -=2;
}
print "\n";
#END
Disclaimer: Its a collection from lots of other site(s) and few of my notes. I would also like to declare that I am not owning lots of its content. Please feel free to contact me directly if you want me to remove any of your content, that you don't want to share to other through this blog.
Tuesday, 26 August 2014
Saturday, 9 August 2014
html frame example
1. The following code will create a frame.
$vi frame.htm
<html>
<frameset cols="10%,*" border="7" bordercolor="red">
<frame name="leftFrame" src="navigation.htm" marginheight=30 marginwidth="5">
<frame name="mainFrame" src="mainHome.htm" marginheight="30" marginwidth="25">
</frameset>
</html>
NOTE: the frame name that you can do the target to for other pages.
2. navigation page:
$vi navigation.htm
<html>
<head>
</head>
<body>
<H5><u>Navigation</u></H5>
<a href="mainHome.htm" target="mainFrame"a>Home</a><br>
<a href="page1.htm" target="mainFrame"a> Page1<br>
<a href="page2.htm" target="mainFrame"a> Page2<br>
</body>
</html>
NOTE: e mainHome.htm, page1.htm and page2.htm all are target to the "mainFrame" that we have define on the frame.htm [above] code. So that when you click the above link, those pages will open on the mainFrame.
Different target:
http://www.w3schools.com/tags/att_a_target.asp
3. Now you create your pages as define on the Navigation.htm file:
example:
$ vi mainHome.htm:
<html>
<head>
</head>
<body>
This is the Home page.
</body>
</head>
example:
$ vi page1.htm
<html>
<head>
</head>
<body>
This is page1.
</body>
</head>
example:
$vi page2.htm
<html>
<head>
</head>
<body>
This is page2.
</body>
</head>
SnapShot:
$vi frame.htm
<html>
<frameset cols="10%,*" border="7" bordercolor="red">
<frame name="leftFrame" src="navigation.htm" marginheight=30 marginwidth="5">
<frame name="mainFrame" src="mainHome.htm" marginheight="30" marginwidth="25">
</frameset>
</html>
NOTE: the frame name that you can do the target to for other pages.
2. navigation page:
$vi navigation.htm
<html>
<head>
</head>
<body>
<H5><u>Navigation</u></H5>
<a href="mainHome.htm" target="mainFrame"a>Home</a><br>
<a href="page1.htm" target="mainFrame"a> Page1<br>
<a href="page2.htm" target="mainFrame"a> Page2<br>
</body>
</html>
NOTE: e mainHome.htm, page1.htm and page2.htm all are target to the "mainFrame" that we have define on the frame.htm [above] code. So that when you click the above link, those pages will open on the mainFrame.
Different target:
http://www.w3schools.com/tags/att_a_target.asp
3. Now you create your pages as define on the Navigation.htm file:
example:
$ vi mainHome.htm:
<html>
<head>
</head>
<body>
This is the Home page.
</body>
</head>
example:
$ vi page1.htm
<html>
<head>
</head>
<body>
This is page1.
</body>
</head>
example:
$vi page2.htm
<html>
<head>
</head>
<body>
This is page2.
</body>
</head>
SnapShot:
Subscribe to:
Posts (Atom)