Solved

Scalar input / convert to operator

Posted on 2000-04-16
4
181 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 50 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 84

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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Email validation in proper way is  very important validation required in any web pages. This code is self explainable except that Regular Expression which I used for pattern matching. I originally published as a thread on my website : http://www…
I have been pestered over the years to produce and distribute regular data extracts, and often the request have explicitly requested the data be emailed as an Excel attachement; specifically Excel, as it appears: CSV files confuse (no Red or Green h…
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…
Hi friends,  in this video  I'll show you how new windows 10 user can learn the using of windows 10. Thank you.

895 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

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now