Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Scalar input / convert to operator

Posted on 2000-04-16
4
Medium Priority
?
195 Views
Last Modified: 2010-03-05

I have three arguments on the command line. One of which is a mathematical operator, such as +. I'm parsing the arguments to three scalars. How can I use the scalar as an math operator?
IE: $result = ($operand $operator $operand) ?  $result = ($operand + $operand).  Thanks!
davidt@t-online.de
0
Comment
Question by:kenai
  • 2
4 Comments
 
LVL 2

Accepted Solution

by:
azawawi earned 150 total points
ID: 2720477
if( $operator eq "+" ) {
  .....
} else if( $operator eq "-" ) {
}

i sense that what you're asking is not available in a language like Perl but is found in functional languages such LISP (you could construct a list and since every list is actually a statement of the form (operator operand1 operand2 ... operandN) you could execute it....

I dont think this is available in Perl....

Hope this helps....
0
 
LVL 4

Expert Comment

by:adam923
ID: 2720833
it could be done as an eval but it's much easier and safer just to make a separate case for each operator, as azawawi shows above
0
 
LVL 2

Expert Comment

by:azawawi
ID: 2721669
playing with lists & functions is a game than LISP (and its dialects) do well....
0
 
LVL 85

Expert Comment

by:ozo
ID: 2721703
#you could do
$result = eval "$operand $operator $operand";
#but that could be dangerous if you allow someone to set something like
$operator = ',system("delete *.*"),'

#it may be safer to use  something like
$result = &{${{
'+' => sub {$_[0] + $_[1]},
'-' => sub {$_[0] - $_[1]},
'*' => sub {$_[0] * $_[1]},
'/' => sub {$_[0] / $_[1]},
}}{$operand}||sub{undef}}($operand,$operand);
0

Featured Post

[Webinar] Cloud Security

In this webinar you will learn:

-Why existing firewall and DMZ architectures are not suited for securing cloud applications
-How to make your enterprise “Cloud Ready”, and fix your aging DMZ architecture
-How to transform your enterprise and become a Cloud Enabler

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I've just discovered very important differences between Windows an Unix formats in Perl,at least 5.xx.. MOST IMPORTANT: Use Unix file format while saving Your script. otherwise it will have ^M s or smth likely weird in the EOL, Then DO NOT use m…
Checking the Alert Log in AWS RDS Oracle can be a pain through their user interface.  I made a script to download the Alert Log, look for errors, and email me the trace files.  In this article I'll describe what I did and share my script.
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
Six Sigma Control Plans

916 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question