http://qs1969.pair.com?node_id=875544


in reply to sh: line 1: ,: command not found

Did you check whether you have /cygdrive/c/CLISMS.exe in the system where you are running this?. Also try printing the exit status of system command. That will give you a clue.

use Perl;
Perl4Everything

Replies are listed 'Best First'.
Re^2: sh: line 1: ,: command not found
by bh_perl (Monk) on Dec 06, 2010 at 04:12 UTC

    hi

    The warning message was not display after i removed the $var variable. Its looks something wrong with the variable. The changes as below:-
    system("/cygdrive/c/CLISMS.exe /port=1 /ussd=*122#"); my $credit = qx(cat /cygdrive/c/Log.txt |grep \"Baki\" |tail -1 |cut - +d, -f1); $credit =~ s/Baki: //g; $credit = floor($credit + 0.5); if ($credit < 10) { system("/cygdrive/c/CLISMS.exe /port=1 /to=0133034931 /msg=[SMS Ga +teway] URGENT!! Current prepaid credit is RM$credit.00, Please reload +"); #system("/cygdrive/c/CLISMS.exe /port=1 /to=0193301010 /msg=[SMS G +ateway] URGENT!! Current prepaid credit is RM$cedit.00, Please reload +"); }
      /cygdrive/c/CLISMS.exe /port=1 /to=0133034931 /msg=[SMS Gateway] URGEN +T!! Current prepaid credit is RM$credit.00, Please reload
      should surely be
      /cygdrive/c/CLISMS.exe /port=1 /to=0133034931 /msg='[SMS Gateway] URGE +NT!! Current prepaid credit is RM$credit.00, Please reload'

      What you have would have failed at the prompt too. Some of the characters you meant to pass as part of an argument apparently have a special meaning when you use them as part of a shell command.

      I think command shell is trying to execute the value what you are passing to /cygdrive/c/CLISMS.exe. I think adding single quote around $val will help.

      use Perl;
      Perl4Everything