if (defined $ARGV[0] && defined $ARGV[1] && defined $ARGV[2] && defined $ARGV[3]) {
...
}
else { #Die if less than 4 args given
die "Please define at least 4 arguments\n";
}
####
if(@ARGV < 4) {
die "Please define at least 4 arguments\n";
}
# I must have 4 arguments at this point.
####
if ($ARGV[0]=="tri") {
my $figure="triangle";
}
elsif ($ARGV[0]=="cir") {
my $figure="circle";
}
...
if ($ARGV[1]=="area") {
my $op="area";
if ($figure=="rectangle") { my $reqargs=2; }
elsif ($figure=="square") { my $reqargs=1;}
elsif ($figure=="triangle") { my $reqargs=2; }
elsif ($figure=="circle") { my $reqargs=1; }
}
####
my $shape = shift @ARGV; # take first argument off ARGV
my %shapes = (
"tri" => "triangle",
"cir" => "circle",
"req" => "rectangle",
"sqr" => "square"
);
my $figure = $shapes{$shape} or die "Unknown shape $shape\n";
####
my $shape = shift @ARGV; # take first argument off ARGV
my $op = shift @ARGV; # take second argument off ARGV
my %shapes = (
"tri" => {
name => "triangle",
area => 2, # required number of args
peri => 3,
hypo => 2,
},
"sqr" => {
name => "square",
area => 1,
peri => 1,
},
"rec" => {
name => "rectangle",
area => 2,
peri => 2,
},
"cir" => {
name => "circle",
area => 1,
peri => 1,
},
);
# Get full name of figure.
my $figure = $shapes{$shape}{name} or die "Unknown shape: $shape\n";
# Determine how many arguments we require.
my $reqargs = $shapes{$shape}{$op} or die "Unknown operator $op".
" or $op does not work with shape $figure";
####
elsif ($refsum==12.2) {
my $diameter=$ARGV[3];
my $answer=$diameter*$pi;
} # $answer stops existing HERE
####
elsif ($refsum==12.2) {
my $diameter=$ARGV[3];
$answer=$diameter*$pi;
}
####
#!usr/bin/perl -w
use warnings;
use strict;
print "Welcome to Will's Plane Geometry Calculator.\nThe ".
"first argument should be tri, cir, rec, or sqr.\n".
"The second argument should be area, peri, or ".
"hypo.\nIf you give hypo as the second argument, ".
"the next two arguments should ".
"be the known sides of the traingle.\nthe peri arg ".
"will also find circumference ".
"if cir is given for the figure. Specify the ".
"diameter to find this.\nPi is approximated at ".
"3.141592654 (simply change my pi if a different ".
"approximation is needed)\nTo find area of a circle ".
"specify the radius.\nI think you can figure ".
"out the rest.\n", "-" x76, "\n";
my $pi=3.141592654;
if (@ARGV < 3) {
die "Please define at least 3 arguments\n";
}
my $shape = shift @ARGV; # take first argument off ARGV
my $op = shift @ARGV; # take second argument off ARGV
my %shapes = (
"tri" => {
name => "triangle",
area => 2,
peri => 3,
hypo => 2,
},
"sqr" => {
name => "square",
area => 1,
peri => 1,
},
"rec" => {
name => "rectangle",
area => 2,
peri => 2,
},
"cir" => {
name => "circle",
area => 1,
peri => 1,
},
);
my %operators = (
"area" => "area",
"peri" => "perimeter",
"hypo" => "hypotenuse",
);
# Get full name of figure.
my $figure = $shapes{$shape}{name} or die "Unknown shape: $shape\n";
# Determine how many arguments we require.
my $reqargs = $shapes{$shape}{$op} or die "Unknown operator $op".
" or $op does not work with shape $figure";
# Get our operator name
my $operator = $operators{$op};
print "\n INFO PRINTOUT FROM SCALARS:\n FIGURE: $figure\n ",
" OPERATION: $operation\n REQUIRED ARGS: ".
" $reqargs\n\n";
# Since we know $reqargs, check that we can go ahead at
# this point.
if(@ARGV < $reqargs) {
die "Not enough arguments provided for this ".
"function.";
}
my $answer;
if($shape eq "tri") {
if($op eq "area") {
my ($base, $height) = @ARGV;
$answer = 0.5*$base*$height;
}
elsif($op eq "peri") {
my ($side1, $side2, $side3) = @ARGV;
$answer = $side1 + $side2 + $side3;
}
elsif($op eq "hypo") {
my ($side1, $side2) = @ARGV;
$answer = sqrt( $side1*$side1 +
$side2*$side2 );
}
}
elsif($shape eq "cir") {
if($op eq "peri") {
my ($diameter) = @ARGV;
$answer = $diameter*$pi;
}
elsif($op eq "area") {
my ($radius) = @ARGV;
$answer = $radius*$radius * $pi;
}
}
elsif($shape eq "sqr") {
if($op eq "area") {
my ($side) = @ARGV;
$answer = $side*$side;
}
elsif($op eq "peri") {
my ($side) = @ARGV;
$answer = $side*4;
}
}
elsif($shape eq "rec") {
if($op eq "area") {
my ($length, $width) = @ARGV;
$answer = $length*$width;
}
elsif($op eq "peri") {
my ($length, $width) = @ARGV;
$answer = $length*2 + $width*2;
}
}
if (defined $answer) {
print "\n\n","-" x76,"\n","Calculations Completed ".
"Successfully!\n";
print "Your answer is: $answer\n";
}
else {
print "\n\n","-" x76,"\n","Calculations Completed.".
"\n Operation Unsuccessful.\n Cause ".
"Unknown.\n";
}
print "pi is $pi\n";