CGI Scripts
to Create a Website with Interactive Features

Sorting the Database

There are 2 sort routines presented here. The first is a simple ascii code sort that sorts the database by name. The second is used when you need to sort numerically. An ascii sort would sort the numbers 1,2,12,32,300 as 1,12,2,300,32. The numerical sort below would sort them correctly by numeric value.


sort_names.pl

#!/usr/bin/perl
#sort_names.pl
open (INFO,"names_file.txt");
@array=<INFO>;
close (INFO);

@sortedarray=sort(@array);

print "Content-type:text/html\n\n"; #Follow with blank line

print "<html>\n";
print "<head><title></title></head>\n";
print "<body>\n";

foreach $line (@sortedarray){
($last,$first)=split(/\|/,$line);
print "$first $last<br>\n";
}

print "</body>\n";
print "</html>\n";

Test these Scripts

sort_numbers.pl

#!/usr/bin/perl
#sort_numbers.pl
open(INFO, "records_file.txt"); # Open db for reading and display
@array=<INFO>;
close (INFO);

print "Content-type:text/html\n\n"; #Follow with blank line

print "<html>\n";
print "<head><title></title></head>\n";
print "<body>\n";
print "<h4>Sorted by Number</h4>\n";

foreach $line(sort byNUM @array){
chomp($line);
($last,$first,$record)=split(/\|/,$line);
print "$record $first $last<br>\n";
}

print "</body>\n";
print "</html>\n";

#Sorting Subroutine
sub byNUM {
@a=split(/\|/,$a);
@b=split(/\|/,$b);
$a[2] <=> $b[2];
}

records_file.txt

Bunyan|Paul|3
SimpSon|Bart|12
Anderson|Pamela|22
Bush|George|1

Note: If the scripts don't work:
1...Check the shebang line and make sure it is the path recommended by your web host to access the perl interpreter on your server.
2...Be sure to use the Chmod function on your ftp client or file manager to change the permissions of the script to 755


How to Test Scripts on Your PC

In order to test scripts of any kind, Perl, PHP or MySQL, on your PC, you'll need to set up a localhost server.
See: Localhost Server
Then read my tutorial on setting up your server to work with the HTMLPad 2010 html editor.