Simple FUNCTION EVAL by REGEXP

Filed under เรื่อยเปื่อย บ่นๆ ไร้สาระมั่ง ไม่ไร้สาระมั่ง
Tagged as ,
#!/usr/bin/perl
while(1){
  print "Questions :";
  my $input = <STDIN>;
  chomp($input);
  $input =~s /\s|\t|\r|\n|\=|\?|\[|\]|\://ig;# หรือ จะตัดอะไรเพิ่มก็ใส่ลงไป เช่น /\s|\t|\r|\n|\=|\?|\(|\)|\[|\]|\://ig;
  $input =~s /x/\*/ig;# แปลงเครื่องหมาย x เป็น * (คูณ)
  $input =~s /÷/\//ig;# แปลงเครื่องหมาย ÷ เป็น / (หาร)
  while(my ($regex) = $input =~/(\((.{3})\)|(.{2}\(.{2}\))|(\(.{2}\).{2}))/i){
	my $eval_regex = eval $regex;
	$input =~ s/(\((.{3})\)|(.{2}\(.{2}\))|(\(.{2}\).{2}))/$eval_regex/i;
	print "input ($regex) : $input\n";
  }
  my $ans = eval $input if(eval $input); # ป้องกัน error กรณีใส่อะไรที่ คำนวน (eval) ไม่ได้เข้าไป
  print "Answer : $ans\n";
}
Share and Enjoy:
  • Facebook
  • Twitter
  • del.icio.us
  • Digg
  • Google Bookmarks

Post a Comment

You must be logged in to post a comment.