Sunday, May 25, 2008

Chapter 1 ~ 4 - Examples code for [Professional Perl Programming]


############################################################################################################
#Author: Leo
#Email: ahyeek@gmail.com
#Desc:
# The author has created some codes to test out during the learning process for the book called
# <Professional Perl Programming>, publisher: Wrox Pree Ltd, year in 2001
# ISBN: 1-861004-49-4.
#
#Summary:
# Examples code for <Professional Perl Programming>.
# Chapter 1: Introduction
# Chapter 2: Basic Concepts
# Chapter 3: Scalars
# Chapter 4: Operators
#
############################################################################################################

#!/usr/bin/perl

use warnings;
use strict;


###########################
# Assignment
###########################

print +("Helloooo"), " World!!\n";

print "###########################\n";

print "# Assignment\n";
print "###########################\n";

my $variable = "my value";

my $c = $b = $a = 'This is a, b and c values';

print "Variable=" . $variable . "\n";

print "c = b = a = " . $c . "\n";

#For array assignment.
my @myarray = (1, 2, 3, 4, 5);

print "@myarray\n";

@myarray[0] = (9);
print "After changing elelment no. 1 ==> @myarray\n";


@myarray[0..3] = (10, 8, 7, 6);
print "After changing elelment no. 1 to 4th ==> @myarray\n";


print "###########################\n";
print "# Shift operator bit\n";
print "###########################\n";

printf "2 << 1 = %d\n", 2 << 1;

printf "2 << 3 = %d\n", 2 << 3;
printf "42 >> 2 = %d\n", 42 >> 2;


print "###########################\n";
print "# String and List\n";
print "###########################\n";
my $str1 = "First";

my $str2 = "Second";
my $join = $str1 . $str2 . "\n";

print "Concatenate 2 string => " . $join;

my $x = "x";
print "Repeat string =>" . $x x 30 . "\n";


my @reparr = (1, 2, 3) x 3;
print "Repeat array => @reparr \n";


my @arr1 = (1, 2, 3);
my @onlylastelementrepeat = @arr1 x 20;

print "Only last element repeat => @onlylastelementrepeat \n";

my @arr2 = (@arr1) x 3;

print "Repeat the arr = @arr2 \n";

print "###########################\n";
print "# Increment & Decrement \n";

print "###########################\n";
my $number = 0;
$number++;
print "\$number++=" . $number . ", ++\$number=" . ++$number . "\n";

print "--\$number=" . --$number . ", \$number--=" . $number . "\n";


my $Str3 = "Perk";
print "++\$Str3 = " . ++$Str3 . "\n";

print "++\$Str3 = " . ++$Str3 . "\n";
my $serialno = "SN1999";

print "Increment in serial number string ==>" . ++$serialno . ", " . ++$serialno . "\n";

print "###########################\n";

print "# Comparison in perl ... \n";
print "###########################\n";
my $strnum1 = 1;
my $strnum2 = 5;

while($strnum1 < $strnum2)
{
print "\$strnum1=" . $strnum1 . " still less than \$strnum2\n";
$strnum1++;

}

my $name = "TSY1";
if ($name ne "TSY")

{
print "Name not same!\n";
}

print "#############################\n";
print "# Range operator in perl ... \n";

print "#############################\n";
foreach(1..10){
print "$_\n";

}

print "A".."E"; print "\n";
print reverse "A".."E"; print "\n";


print "#############################\n";
print "# Ternary operator ... \n";
print "#############################\n";
my $v1;

my $v2;
my $same = 0;
print "Only V1 and V2 is same to exit...\n";
while(!$same){
print "Please input v1: "; $v1=<>;
print "Please input v2: "; $v2=<>;
print "Result is " . (($v1==$v2) ? "same" : "different") . "\n";
$same = ($v1==$v2);

}


No comments: