Various logic and code bits to help you with various scripting tasks.
Here's a great example for an array comparison mechanism in perl to find out what is in common, what is different, etc.
$ cat ./compare_array.pl
#!/usr/bin/perl
use strict;
use warnings;
my @array1;
my @array2;
my @diff;
my @isect;
my $item;
my %count;
@array1 = (1, 2, 4, 6, 7, 8);
@array2 = (1, 2, 3, 5, 6, 7);
@isect = ( );
@diff = ( );
%count = ( );
foreach $item (@array1, @array2) { $count{$item}++;}
foreach $item (keys %count) {
if ($count{$item} == 2) {
push @isect, $item;
} else {
push @diff, $item;
}
}
print "\nA Array = @array1\n";
print "\nB Array = @array2\n";
print "\nIntersect Array = @isect\n";
print "\nDiff Array = @diff\n\n";
exit 0;
$ ./compare_array.pl
A Array = 1 2 4 6 7 8
B Array = 1 2 3 5 6 7
Intersect Array = 6 1 7 2
Diff Array = 8 4 3 5
The perl split function is handy for breaking up a string into several values. For example if you are reading lines from a file and want to split that line into some different values, manipulate them, and spit them into a new file. If you're lucky, the line is delimited by something like a ^ (carrot) charcater.
So, source line is something like:
larry^moe^curly
You can use a one liner like this to break up the line into 3 values...
($value1,$value2,$value3)=split(/\^/,$line);
Note how we had to escaple the ^ with a backslash. So now ...
print "$value1 --- $value2 --- $value3";
will print "larry --- moe --- curly". If there were numbers, you can quickly read in a data file, calculate some values and spill out a new results file. Or split a string into component values to be used later... be creative!