1.问题描述:

总共90位长度的位流数据,其中只有5位的数据为1,其余位全部为0。统计好多组5位的简化数据(每一位之间空格隔开,每一组一行),将其扩展到90位。

 1 #!D:/EDA/Perl/bin
 2 $path_in = "weiliu.txt";
 3 $path_out = ">weiliu.dat";
 4 open(FILE_IN,$path_in)||die"can not open the file: $!";
 5 open(FILE_OUT,$path_out)||die"can not open the file: $!";
 6 while ($eachline =<FILE_IN>) {
 7     chomp $eachline;
 8     @line = split(/\s+/,$eachline);
 9     @line_91 = (0) x 90;#初始化一个91位的全为0的数组
10     print("@line_91\n");
11
12     my $count=0;
13     while($count <@line){              # ($count <@line)表示的是数组的元素个数
14         $line_91[$line[$count]-1] = 1;# @line中的值指示了@line_91中的对应位变为1.
15         $count++;                      # 数组中具体变量用:$数组名[索引值] 来表示.
16     }
17     print("@line_91\n");
18
19     my $line_new = join('',@line_91); #产生的90位数据之间不应该有空格,将空格合并掉.
20     print("$line_new\n");
21     print FILE_OUT ($line_new,"\n");
22 }
23 close FILE_IN;
24 close FILE_OUT;
25 print("hello world");

其中:

 2 $path_in = "weiliu.txt";3 $path_out = ">weiliu.dat";

变量$path_in和$path_out分别指向要被读出来进行操作并最终写回的文本文件的路径。当然路径的话可以取绝对路径,不指出绝对路径,则默认是在当前目录下。windows下路径用反斜杠(/)。如:"D:/Perl/test/example.pl"。或者"D:\\Perl\\test\\example.pl"UNIX下用斜杠(\),双引号。>表示写,一旦文件以写方式打开,他的内容将被删除,若要对文件进行追加内容,应该用>>。
 4 open(FILE_IN,$path_in)||die"can not open the file: $!";5 open(FILE_OUT,$path_out)||die"can not open the file: $!";

perl通过文件句柄对文件进行操作 open(file_handle,file_name)。

 6 while ($eachline =<FILE_IN>) {

读入文件的每一行。保存在变量$eachline中。直到读出所有行,循环才结束。

@line = split(/\s+/,$eachline);
my $line_new = join('',@line_91); 

split用于将一行文本拆分为数组,对数组的每个元素即可进行单独处理。

join将数组变量合并为变量。

20     print("$line_new\n");
21     print FILE_OUT ($line_new,"\n");

通过句柄将变量输出到文件的每一行。

chomp $eachline;

chomp函数用于去掉字符串结尾的换行,chop用于去掉字符串最后一个字符(包括换行符)(记忆:m相当于加了约束,所以只去掉换行符)。

2.运行结果

3.总结

第一次写perl脚本,花了3个多小时,从print函数开始,到文件操作,基本上熟悉了基本的语法。终于完成了一个工作。以后的工作和学习中会继续探索Perl的用法。

转载于:https://www.cnblogs.com/littleMa/p/5310941.html

perl-我的第一个程序相关推荐

  1. Perl语言学习(Perl安装+编辑第一个程序)

    由于公司需要,本人最近在学习Perl这种脚本语言,本文是我在学习Perl的过程中总结出来的一些心得和笔记,希望能够帮助也在学习Perl的各位同僚.废话不多说直接上干货!!! ------------- ...

  2. 中国第一代程序员简史:中国龙简晶的程序人生

    [CSDN编者按]本文的作者是CSDN的好朋友林兴陆,笔名小林.而文章的主人公则是18年前,CSDN的<程序员杂志>(2001年第五期)的封面人物简晶. 简晶的软件作品无论是广受好评的「中 ...

  3. 中国第一代程序员简史:中国龙简晶的程序人生 | CSDN 人物志

    [CSDN编者按]本文的作者是CSDN的好朋友林兴陆,笔名小林.而文章的主人公则是18年前,CSDN的<程序员杂志>(2001年第五期)的封面人物简晶. 简晶的软件作品无论是广受好评的「中 ...

  4. Shiro第一个程序:官方快速入门程序Qucickstart详解教程

    目录 一.下载解压 二.第一个Shiro程序 1. 导入依赖 2. 配置shiro配置文件 3. Quickstart.java 4. 启动测试 三.shiro.ini分析 四.Quickstart. ...

  5. 零起点学算法01——第一个程序Hello World!

    零起点学算法01--第一个程序Hello World! Description 题目很简单 输出"Hello World!"(不含引号),并换行. Input 没有输入 Outpu ...

  6. 她,诗人拜伦之女,英国数学家,历史上第一位程序员

    作者丨吴军 来源丨大数据文摘 摘自丨<信息论> 人类使用机械处理信息的尝试是由两个看似不该有交集的英国人开启的. 在英格兰中部莱斯特郡的柯比-马洛里庄园,住着一对母女. 1816年初那个多 ...

  7. python定义一个变量_Python新手上车3:Python第一个程序和变量

    第一个程序 上节内容我们提到了如何安装Python 以及安装配置VSCode,这节内容我们继续介绍第一个程序的建立: 1.在VS的左上角点击建立一个新的程序,命名为 python_0301_code. ...

  8. 第一个程序01 - 零基础入门学习汇编语言20

    第四章:第一个程序01 让编程改变世界 Change the world by program 引言 现在我们将开始编写完整的汇编语言程序,用编译器将它们编译成为可执行文件(如:*.exe文件),在操 ...

  9. java 怎么让一个jlabel和一个jtextfield在一行_今天小哥大家分享一下Java编程语言的第一个程序应该怎么样去写...

    哈喽,各位朋友们大家周六好!我是你们的老朋友90小哥爱数码! 那么,今天小哥要和大家伙儿分享这篇文章的主要内容依然是和Java编程语言有关系,大家都知道在上几篇的文章当中呢小哥分别给大家介绍了Java ...

  10. java hello work_Java入门教程系列 – 第一个程序 “hello, world”

    "Hello, World"程序指的是指在计算机屏幕上输出"Hello, World!"(意为"世界,你好!")这行字符串的计算机程序.一般 ...

最新文章

  1. Swift typealias使用
  2. 密织“地网” 南充“试水”智慧安防
  3. reactJS -- 9 组件的Refs(操作DOM的两种方法)
  4. fork与操作文件的系统调用问题
  5. Linux基本目录结构
  6. html默认下面,阅读下面配置web默认页面index.html的代码 index.html 下面选项中,说法正确的是() (多选)...
  7. 怎样给oracle表设置序列,Oracle的sequence序列在hibernate中的配置方法
  8. 诗与远方:无题(八十四)- 自己醉了
  9. 分布式存储系统设计 - Gossip
  10. linux的ky3关闭防火墙,ky3-8
  11. 指针系统学习5-对使用字符指针变量和字符数组的讨论
  12. mysql的面试2_mysql数据库面试题(2)
  13. echart3 click点击事件使用
  14. Recoverit for Mac(数据恢复软件)
  15. eclipse中export 的jar file与 runnable jar file的区别
  16. Java-接口第一篇认识Interface
  17. SQL语句基本增删改查操作总结
  18. win的反义词_小学英语常用近义词、反义词、同音词汇总 ~~~ 赶紧转给孩子
  19. 接口自动化第四篇----应用工厂模式下的HttpClient请求
  20. 查看mysql中SQL的执行计划

热门文章

  1. 【Leetcode】亮眼题/新思路
  2. 问题1、图像分割预测时原始图片大小与预测图片大小不一致
  3. 如何手动优化机器学习模型超参数
  4. Yarn install报错 【错误: 找不到或无法加载主类 install】
  5. 7个开源的SNS社交网络平台
  6. 2021-06-06label标签 icon 图标设置
  7. latex IEEE 模板 使用bib BibTeX
  8. Mysql远程授权报语法错误
  9. 设计模式之GOF23外观模式
  10. 苹果系统备份文件服务器地址,IOS备份到tftp服务器和升级IOS