Archives from S:\ Drive
Good to keep around methinks
This commit is contained in:
1 parent
eadaf70b9e
commit
6dd63cc439
606 files changed
+50212
No files matched your search
@@ -0,0 +1,233 @@
|
||||
#!/usr/bin/env perl
|
||||
################################################
|
||||
# Name: Amrit Panesar
|
||||
# Student Number: 77260
|
||||
# Program: 01
|
||||
################################################
|
||||
|
||||
#initialization
|
||||
use Win32::Console::ANSI;
|
||||
use Term::ANSIColor;
|
||||
use Term::ReadKey;
|
||||
use Data::Dumper qw(Dumper);
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
$\ = "\n";
|
||||
$| = 1;
|
||||
|
||||
#variables
|
||||
my ($input, $choice, $temp, $hold);
|
||||
my $debug = 0;
|
||||
############################lets begin##########
|
||||
system("cls");
|
||||
system("color 1e");
|
||||
&doMenu();
|
||||
system("cls");
|
||||
system("color 07");
|
||||
print "\n"x5;
|
||||
&again();
|
||||
print "\n\nThanks for playing!";
|
||||
exit;
|
||||
|
||||
##########################begin subroutines#####
|
||||
sub _getKey
|
||||
{
|
||||
my $key = undef;
|
||||
while (not defined($key = ReadKey(-1))) { };
|
||||
print $key;
|
||||
return $key;
|
||||
}
|
||||
sub _anyKey
|
||||
{
|
||||
print "\n";
|
||||
print "Press any key to continue...";
|
||||
_getKey();
|
||||
}
|
||||
|
||||
sub again
|
||||
{
|
||||
printf "Run again?\n[Y/n] :";
|
||||
my $key = undef;
|
||||
while(1) {
|
||||
$key = lc(_getKey());
|
||||
#print ord($key);
|
||||
if ($key eq 'y' || $key eq 'n' || ord($key) == 13) {
|
||||
last;
|
||||
}
|
||||
}
|
||||
if ($key eq 'y' || ord($key) == 13) {
|
||||
print "\n"x2;
|
||||
system ("pause");
|
||||
do __FILE__;
|
||||
}
|
||||
}
|
||||
|
||||
sub doInput
|
||||
{
|
||||
my $prompt = shift;
|
||||
my $input = "";
|
||||
printf(">%s\n: ", $prompt);
|
||||
chomp($input = <>);
|
||||
print "\n";
|
||||
return $input;
|
||||
}
|
||||
|
||||
sub AUTOLOAD
|
||||
{
|
||||
use vars qw($AUTOLOAD);
|
||||
print "Could not find subroutine ".$AUTOLOAD;
|
||||
_anyKey();
|
||||
}
|
||||
|
||||
sub doMenuLine
|
||||
{
|
||||
my $line = shift;
|
||||
my $spaces = " "x((78 - length($line))/2);
|
||||
print "|".$spaces.$line.$spaces."|";
|
||||
}
|
||||
|
||||
sub doMenu
|
||||
{
|
||||
my $input = "";
|
||||
while ($input eq "")
|
||||
{
|
||||
system("cls");
|
||||
print " "."_"x(75);
|
||||
print " /"." "x(75)."\\ ";
|
||||
if ($debug) {
|
||||
doMenuLine("Main menu - debug");
|
||||
} else {
|
||||
doMenuLine("Main menu");
|
||||
}
|
||||
doMenuLine("-"x(15));
|
||||
doMenuLine("E - Extract and Process string ");
|
||||
doMenuLine("P - Perform a mathematical operation ");
|
||||
doMenuLine("R - Read a directory of files ");
|
||||
doMenuLine("F - Find a pattern in a list of files ");
|
||||
doMenuLine("L - Determine if a word is a palidrome ");
|
||||
doMenuLine("-"x(19));
|
||||
doMenuLine("Q - Quit ");
|
||||
print "|"." "x(77)."|";
|
||||
print " \\"."_"x(75)."/";
|
||||
print $\.$\.$\;
|
||||
|
||||
printf "Please enter a menu option: ";
|
||||
chomp($input = lc(<>));
|
||||
print "\n";
|
||||
|
||||
if (defined($input)) {
|
||||
if ($input eq 'e') {
|
||||
$input = "";
|
||||
&doExtract();
|
||||
} elsif ($input eq 'p') {
|
||||
$input = "";
|
||||
&doMath();
|
||||
} elsif ($input eq 'r') {
|
||||
$input = "";
|
||||
&doRead();
|
||||
} elsif ($input eq 'f') {
|
||||
$input = "";
|
||||
&doPattern();
|
||||
} elsif ($input eq 'l') {
|
||||
$input = "";
|
||||
&doPalindrome();
|
||||
} elsif ($input eq 'q') {
|
||||
last;
|
||||
} else {
|
||||
$input = undef;
|
||||
print "Error, please enter a valid menu option: e, p, r, f, l, or q";
|
||||
_anyKey();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
sub doExtract {
|
||||
my $input = doInput("Please enter a string");
|
||||
my @chars = split(//, $input);
|
||||
print "The string: " .$input . " has " .($#chars + 1). " characters.";
|
||||
_anyKey();
|
||||
}
|
||||
|
||||
sub doMath {
|
||||
my $input = doInput("Please enter a matematical expression");
|
||||
if ($input =~ /[0-9]/) {
|
||||
my $output = eval($input);
|
||||
if (!$@) {
|
||||
print "Result: " .$output;
|
||||
} else {
|
||||
print "Invalid Expression";
|
||||
}
|
||||
} else {
|
||||
print "Please include at least one number in your expression";
|
||||
}
|
||||
_anyKey();
|
||||
}
|
||||
|
||||
sub doRead {
|
||||
my $input = doInput("Please enter a valid directory");
|
||||
if (opendir(my $dh, $input)) {
|
||||
print "Here are all the files in: ". $input;
|
||||
while (readdir $dh) {
|
||||
print;
|
||||
}
|
||||
} else {
|
||||
print "Unable to open directory: ".$input;
|
||||
}
|
||||
_anyKey();
|
||||
}
|
||||
|
||||
sub doPattern {
|
||||
my $input = doInput("Please enter a valid directory");
|
||||
my $grep = doInput("Please enter a filtering expression");
|
||||
if (opendir(my $dh, $input)) {
|
||||
print "Here are all the files in: ". $input ." that match \"" .$grep. "\"";
|
||||
my @filtered;
|
||||
$grep = lc($grep);
|
||||
foreach my $element (readdir($dh)) {
|
||||
$element = lc($element);
|
||||
my $index = index($element, $grep);
|
||||
if ($debug) {
|
||||
print($element . ", " . $grep . ", " . ($index > -1));
|
||||
}
|
||||
if ($index > -1) {
|
||||
push(@filtered, $element);
|
||||
}
|
||||
}
|
||||
if ($debug) {
|
||||
print "\n";
|
||||
unshift(@filtered, "Elements in the filtered list: ");
|
||||
print "Total elements: " . scalar(@filtered);
|
||||
}
|
||||
if (scalar(@filtered) > 0) {
|
||||
foreach (@filtered) {
|
||||
print;
|
||||
}
|
||||
} else {
|
||||
print "No matches found";
|
||||
}
|
||||
} else {
|
||||
print "Unable to open directory: ".$input;
|
||||
}
|
||||
_anyKey();
|
||||
}
|
||||
|
||||
sub doPalindrome {
|
||||
my $input = doInput("Please enter a palindrome");
|
||||
my @chars = split(//, $input);
|
||||
my @rev = ();
|
||||
for (my $j = 0, my $i = $#chars; $i > -1; $i--, $j++) {
|
||||
$rev[$j] = $chars[$i];
|
||||
}
|
||||
my $output = join('', @rev);
|
||||
if ($debug) {
|
||||
print "Input: ". $input;
|
||||
print "Output: ". $output;
|
||||
}
|
||||
if ($input eq $output) {
|
||||
print "the word or phrase: ". $input ." IS a palindrome.";
|
||||
} else {
|
||||
print "the word or phrase: ". $input ." is NOT a palindrome.";
|
||||
}
|
||||
_anyKey();
|
||||
}
|
||||
Reference in new issue
Block a user