perl 命令行参数判断错误

perl 命令行参数判断错误

判断输入命令参数  -h  ,打印帮助信息:

**************************************************
while ($#ARGV != -1)
{
        if($ARGV[0] == ~/-h/)
                print "This is help message!!!";
        }
exit 0;

**************************************************

syntax error at D:\SRC\perl\argv.pl line 21, near ")
                print"
Execution of D:\SRC\perl\argv.pl aborted due to compilation errors.
== ~


[Copy to clipboard] [ - ]
CODE:
print "This is help message!" if ( $ARGV[0] eq "-h"  );

谢谢楼上两位,我一直搞不懂这个条件判断为什么语法错误?perl条件判断和C写法有什么不同啊?

我的那个还是个死循环,唉,狂晕!
Perl里面没有 == ~
改称=~ 试试看吧
还有一点,你的条件判断后面没有加{},这个是最基本的语法了
perl 判断单个语句不能省略花括号,呵呵呵,没有一懒到底的语言哦!
在特殊的情况下可以省略大括号,比如条件判断后,需处理的只有一条语句,就类似我在前面写的

[Copy to clipboard] [ - ]
CODE:
print "This is help message!" if ( $ARGV[0] =~ /-h/  );

晕,这个流程判断怎么又和C不一样,还是语法错误!
知道的给俺点下。

*******************************************

while ($#ARGV != -1)
{
        if($ARGV[0]=~ /-h/i){
                        #if($ARGV[0] eq "-h") # error:if($ARGV[0] == ~/-h/)
                print "This is help message!";
                }
        else if($ARGV[0]=~ /-i/){
                print "This is i choose message!";
                }
        else if($ARGV[0]=~ /-j/){
                print "This is j choose message!";
                }
        else {
                        print "arguments errors!";
                }
        exit 0;
        }

把else if 换成 elsif