dkco的个人空间 https://blog.eetop.cn/1801506 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

PERL_coding

已有 153 次阅读| 2023-2-25 18:28 |系统分类:芯片设计| PERL

1. 一个perl 小脚本格式

#!/usr/bin/perl

my $logFile = $ARGV[0];      #将ternimal 中第一个输入(不包括脚本名)赋值给变量$logFile

my $outFile = $ARGV[1];     #将ternimal 中第二个输入赋值给变量$outFile,输入参数存在数组@ARGV中

if (@ARGV < 2) {   #提示terminal中输入参数的数量(不包括脚本名)是否正确, @ARGV < 2表示数组长度

#或者 if ($#ARGV < 2)    $#表示数组长度

    print "\nScript usage: $0 logFileName outFileName.\n\n"; exit;

}         #提示脚本用法;$0表示在terminal中输入的第一个变量(即脚本名);

open(IF, $logFile );     #IF为文件句柄;可通过文件句柄的方式对logFile进行读取操作;

while(<IF>) {    #<IF>表示逐行读取logFile,并将其赋值给一个系统默认变量$_,  对file进行遍历时$_ = <IF>可简写为<IF>

    if ($_ =~ /^\s*layer\s+(\S+)\s+(\d+)/i ) {    #对每一行进行正则匹配,匹配成功后进入if语句

        $str = $1; $Num = $2;     #$1和$2分别为括号中匹配到的第一个和第二个变量;

     

}

close IF;    #每次文件读取完毕要close file

exit;


#perl中使用max和min函数

#!/usr/bin/perl

use List::Util "max";

use List::Util "min";


my $a=1;

my $b = 2;

$c = max($a,$b);

#perl函数返回多个值

my @arr = (1, 2, 3,4,0,-1);

@a4 = &findMaxMin(0,0,0,0,@arr);

sub findMaxMin($) {

  my($xmin, $ymin,$xmax,$ymax, @arr) = @_;

  for(my $k=0; $k < @arr; $k++) {

    if($k%2 == 0){

      $xmin = min($xmin, $arr[$k]);

      $xmax = max($xmax, $arr[$k]);

    } else {

      $ymin = min($ymin, $arr[$k]);

      $ymax = max($ymax, $arr[$k]);

    }

  }


  return $xmin, $ymin, $xmax, $ymax;

}

#删除所有的txt文件

system("rm *.txt") ;

#如果te.txt exist, delete te.txt

system("rm te.txt") if -e "te.txt";

#删除文件最后两行

open(IF, "$test1\.txt"); 

open(OF, ">${test1}_tmp\.txt");

my @arrTmp = <IF>; 

pop(@arrTmp); 

pop(@arrTmp); 

print(OF @arrTmp);

close OF; 

close IF;



点赞

全部作者的其他最新日志

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 1

    关注
  • 1

    粉丝
  • 1

    好友
  • 3

    获赞
  • 1

    评论
  • 19

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-6 20:32 , Processed in 0.019623 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部