分享

脚本语言介绍——perl(3)

 mzsm 2022-06-22 发布于湖北

本公众号【读芯树:duxinshu_PD】主要介绍数字集成电路物理设计相关知识,才疏学浅,如有错误,欢迎指正交流学习。

是集成电路物理设计的第七个系列【脚本语言】的第十七篇文章,本篇文章主要介绍perl相关内容

01

运 算

#算数运算$a=2;$b=3;$c=$a+$b;   #+ 加,- 减,* 乘,/ 除,% 取余, ** 幂运算$c+=$a;     #相当于$c=$c+$a;print '$c\n';#比较运算($a==$b)   #两数是否相等($a!=$b)   #两数是否不相等($a<=>$b)  #a小于b返回-1,a等于b返回0,a大于b返回1($a>$b)    #a大于b返回true($a>=$b)   #a大于等于b返回true($a lt $b)   #字符串a小于字符串b返回true($a gt $b)   #字符串a大于字符串b返回true($a le $b)   #字符串a小于等于字符串b返回true($a ge $b)   #字符串a大于等于字符串b返回true($a eq $b)   #字符串a等于字符串b返回true($a ne $b)   #字符串a不等于字符串b返回true($a cmp $b)  #字符串a小于字符串b返回-1,等于返回0,大于返回1#位运算$a=0010110$b=1101010$a&$b=0000010$a|$b=1111110$a^$b=1111100~$a=1101001

02


时间&日期

$time=localtime();print '$time\n';       #打印当前时间$s_time=time();print '$s_time\n';     #打印从1970/01/01到现在的秒数$gtime=gmtime();print '$gtime\n';      #打印格林威治时间($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();printf('%02d:%02d:%02d\n', $hour, $min, $sec);  #打印时间如12:01:13   $sec   #秒 0~59   $min   #分钟 0~59   $hour  #小时 0~24   $mday  #天 1~31   $mon   #月 0~11   $year  #1900~   $wday  #星期 0~6   $yday  #一年的第几天 0~365   $isdst #夏时令
use POSIX qw(strftime);$datestring = strftime '%Y-%m-%d %H:%M:%S', localtime; #2022-05-23 12:01:13   %a #星期 (Sun~Sat)   %A  #星期 (Sunday~Saturday)   %b  #月 (Jan~Dec)   %B  #月  (January~December)   %c  #日期时间 (Sun May 15 12:01:13 2022)   %C #年份除以100取整 (00~99)   %d #月的第几天(01~31)   %D  #日期 (05/15/22)(%m/%d/%y)   %F  #日期 (2022-05-15)(%Y-%m-%d)   %g #年份最后两位 (00~99)   %G  #年份 (2022)(%Y)   %h #月份 (May)   %H #24小时制(00~23)   %I  #12小时制(01~12)   %j #一年的第几天(001~366)   %m  #月 (01~12)   %M  #分钟 (00~59)   %p #显示AM/PM   %S  #秒(00~59)   %U #一年d的第几周 (00~53)   %w  #一个星期第几天(0~6)   %x  #日期 (mm/dd/yy)   %y  #年(22)   %Y  #年 (2022)   %Z #时区名称(CDT)

03


子函数(程序)

sub myproc { statements;}#调用子函数myproc (args);#例子sub Average { $n=scalar(@_); $sum=0;  foreach $item (@_) {   $sum += $item;  }  $average=$sum/$n;  print 'item is :', '@_\n';  print '$average';}Average (3711);

04


格式化输出

format FormatName =                 #格式名称fieldline                           #一个格式行value_one, value_two, valut_three   #数据行fieldlinevalue_one, value_two, valut_three.    #结束符号#格式行以@或者^开头#@或^后面的<|>的长度决定字段长度,<|>分别表示左对齐,居中对齐和右对齐@##.##     #固定精度数字,表示6个字符宽,小数点前3位,小数点后2位@*         #多行文本##example$~='myFormat';format myFormat = =============================user:    duxinshuemail:   duxinshu@mail.comdate:    2022/05/15/12:01:13=============================.write;

05


文件操作

perl提供三种文件句柄:STDIN,STDOUT,STDERR分别表示标准输入、标准输出和标准出错输出open (DATA, file.txt) or die 'file.txt文件无法打开,$!';    #读取file.txt的内容while (<DATA>) { print '$_'}open (DATA, '>file.txt')   #以写入方式打开文件open (DATA, '+>file.txt')  #以读写方式打开文件,会删除原来内容open (DATA, '+<file.txt')  #以读写方式打开文件,不会删除原来内容open (DATA, '>>file.txt')  #以追加方式打开文件sysopen (DATA, 'file.txt', O_RDWR); #以读写方式打开    O_RDWR        #读写方式打开,指针指向文件头    O_RDONLY      #只读方式打开,指针指向文件头    O_WRONLY      #写入方式打开,指针指向文件头    O_CREAT #创建文件    O_APPEND      #追加文件    O_TRUNC       #将文件大小截取为零    O_EXCL #测试文件是否存在    O_NONBLOCK #非阻塞IOclose(DATA) || die 'no close file successful'#从键盘输入读取print 'input string:\n';$name=<STDIN>;print 'the input is: $name\n';#getc函数getc FileID    #返回单一字符,如果没指定,返回STDINread FileID, scalar, length, offset   #读取文件内容,scalar:存储结果;length:读取长度;offset:偏移量#拷贝文件open(DATA1, '<file1.txt');  #只读打开文件open(DATA2, '>file2.txt');  #写入打开文件while (<DATA1>) {print DATA2 $_;}close(DATA1);close(DATA2);#重命名rename ('./old.txt''./new.txt');#删除文件unlink ('old.txt');

06


参考文献

https://www.runoob.com/perl/perl-tutorial.htmlhttps://www.perl.org/

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多