Monday, May 26, 2008

Examples code for Advance Perl Programming

############################################################################################################
#Author: Leo
#Email: ahyeek@gmail.com
#
#Summary:
# Examples code for Advance Perl Programming.
#
############################################################################################################

#!/usr/bin/perl

use warnings;
use strict;

############################################################################
# Usage : rm_arr_item_for_word_cotain_specific_tag($array, $tag);
# Desc : Removing items from an array where item contain specified word.
############################################################################
my @test_array = ("<div", "<span", "<table", "<div", "<font", "<tr", "<div", "<select", "<p");

foreach my $item(@test_array){
print "[ $item ],";

}
print "\n";

#my @return_array = rm_arr_item_for_word_cotain_specific_tag_once(\@test_array, "</div>");
@test_array = rm_arr_item_for_word_cotain_specific_tag_once(\@test_array, "</div>");

foreach my $item(@test_array){
print "[ $item ],";

}
print "\n";

@test_array = rm_arr_item_for_word_cotain_specific_tag_once(\@test_array, "</p>");
foreach my $item(@test_array){

print "[ $item ],";
}
print "\n";

sub rm_arr_item_for_word_cotain_specific_tag{

my ($array, $tag) = @_;

my @tmp_array = ();

$tag =~ s/(\/|<|>)//g;
print "Targeted tag to remove: $tag\n";

foreach my $item(reverse @$array){

if($item =~ m/$tag/ig) { next; }
push @tmp_array, $item;
}


return @tmp_array;
}

sub rm_arr_item_for_word_cotain_specific_tag_once{
my ($array, $tag) = @_;

my @process_array = reverse @$array;
my @tmp_array = ();

$tag =~ s/(\/|<|>)//g;
print "Targeted tag to remove: $tag\n";

foreach my $item (@process_array){

#print "Process item: $item\n";
if($item =~ m/$tag/ig) {
#print "Found $tag\n";
$tag = "_";
}

else{
#print "Store item: $item\n";
push @tmp_array, $item;
}
}
return reverse @tmp_array;

}



#######################################################################
# Test : Passing array into sub routine and out.
#######################################################################
print "\n\nPassing array into sub routine and out.\n";
my @test_to_change_arr = ('aaa', 'bbba', 'ccca', 'ddda', 'eeea', 'fffa');

my @array_of_hash = ();
my $item_ctr = 0;

foreach my $my_arr_item (@test_to_change_arr)

{
$item_ctr++;
print "Push hash item {$item_ctr => $my_arr_item} into hash array...\n";
push @array_of_hash, {$item_ctr => $my_arr_item};

}
print "\nWhat is having in array, check: \n";
foreach my $arr_item (@array_of_hash)

{
foreach (keys %$arr_item)
{
print "key is $_ value is $$arr_item{$_}.\n";
}

}


sub test_array
{

my ($array, $tag, $tag_to_change) = @_;

}

No comments: