首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

perl中的两条语句是什么意思?解决办法

2012-02-23 
perl中的两条语句是什么意思?1)dieUsage:$0inputoutput1.houtput2.java\ne.g.:$0../rc/AST_types.h../rc/

perl中的两条语句是什么意思?
1)die   "Usage:   $0   input   output1.h   output2.java\ne.g.:   $0   ../rc/AST_types.h   ../rc/mops_constants.h   Constants.java\n "
        unless   $#ARGV   ==   2;


2)@mopsTokens   =   qw(BYTE   INT   STRING   EOL   EOF   FB   FE   D   LP   RP   N   NX   NN   E   LF   LC   LU   ADDRESS   STATE   AST   TRANSITION   INITIALSTATE   FINALSTATE   FSA   LABEL);

请帮助解释这两条语句。

[解决办法]
1。die函数打印一条错误消息(就是后面“”包含的信息)并退出程序。变量名字$#ARGV返回数组ARGV最后一个元素的索引。由此可以知道该条语句的意思是:当数组元素的个数不等于2时,打印出“”中信息。
2。数组初始化时可以用一套字符串初始化,eg:my @array = ( "str1 ", "str2 ", "str3 ");也可以用qw(quote words)运算符简化它。使用这一标记的相同语句如下:
my @array = qw(str1 str2 str3);
由此可知第二条语句的意思,我就不多说了。

我刚刚接触到perl,有误之处烦请大家指出!
[解决办法]
1

$#ARGV #取@ARGV数组最后一个元素的下标。

$#ARGV == 2 #判断@ARGV长度是否为3。

die "message " #打印message,结束进程。

die "message " unless $#ARGV == 2; #如果程序的运行参数个数不等于3则输出错误信息,并退出。


2

qw #一个操作符,把后面的内容按空白符分割成数组。

@mopsTokens = qw(BYTE INT STRING EOL EOF FB FE D LP RP N NX NN E LF LC LU ADDRESS STATE AST TRANSITION INITIALSTATE FINALSTATE FSA LABEL);
#等效于
@mopsTokens = ( "BYTE ", "INT ", "STRING ", "EOL ", "EOF ", "FB ", "FE ", "D ", "LP ", "RP ", "N ", "NX ", "NN ", "E ", "LF ", "LC ", "LU ", "ADDRESS ", "STATE ", "AST ", "TRANSITION ", "INITIALSTATE ", "FINALSTATE ", "FSA ", "LABEL ");

热点排行