Perl学习-输入与输出(01)

perl 脚本学习笔记 前言:   以下材料为 per l脚本学习过程中电子形式的记录,与大家共享。 $b=""; if((defined $b)==1) { printf("have original value\n"); }else { printf("not init\n"); } 阅读详情

标准输入输出

标准输入:<STDIN>

标准输出:<STDOUT>

标准输入

标准输入为$line = <STDIN>

当程序运行时,可以直接从键盘键入输入

  • 如果输入的是标量,按回车代表结束输入
  • 如果输入的是列表,Linux下,ctrl+D的组合键结束输入
  1 use warnings;
  2 
  3 print "Please input: ";
  4 $line = <STDIN>;
  5 
  6 print "the \$line is: $line\n";

执行结果为:

在代码中,输出时只有一个\n,可在打印是,却显示有两个换行符

这可以理解为,我们在输入的时候,因为按了回车,所以会多出一个换行符

若想去掉从键盘输入时的换行符,可以用chomp

chomp

chomp可以去掉输入时的换行符

  1 use warnings;
  2 
  3 print "Please input: ";
  4 $line = <STDIN>;
  5 chomp($line);
  6 print "the \$line is: $line\n";

运行结果为:

可以看到,输出时已经少了一个换行符,也可以改写为:chomp($line = <STDIN>);,看着更简洁

  1 use warnings;
  2 
  3 print "Please input: ";
  4 
  5 chomp($line = <STDIN>);
  6 
  7 print "the \$line is: $line\n";
~                                   

在循环块中的简写

在循环语句中,整行输入符可以进行简写,比如:foreach(<STDIN>)或者while(<STDIN>)

其中foreach用于列表,while 用于字符(for循环和while是一样的),只有这两种循环语句可以用这种简写

钻石操作符

钻石操作符<>是另一种读取输入的方法

钻石操作符是行输入的特例,但它不是从键盘获取输入,而是从用户指定的位置获取数据

  1 while(defined($line = <>)){
  2     chomp($line);
  3     print "It was $line that I saw!\n";
  4 }

在这个例子中,如果调用的参数是fred、barney和betty,输出结果就会是It was [从文件fred取得的一行内容]that I saw!,It was[从文件fred取得的另一行内容]that I saw!等,直到遇到文件fred的结尾为止。接下来会自动切换的文件barney,并且中间没有间断

钻石操作符就好像把这个文件放在了一个大文件中

钻石操作符通常会处理所有的输入,因此钻石操作符不能同时出现在一个程序的多个位置

调用参数

钻石操作符的参数来自@ARGV数组,这个数组的内容是由命令行参数组成的列表

@ARGV在程序开始时就已经被塞满了调用参数

如果@ARGV是个空列表,就会改用标准输入流

输出到标准输出

print操作符会读取后续的所有元素,并把每一项一次送到标准输出

区分两个print

  1 @array = (1..5);
  2 
  3 print @array,"\n";
  4 print "@array\n";

第一个print语句会一个接一个地打印数组中的所有元素,元素之间没有空格

第二个print语句中,每个元素之间由空格隔开

在这里,要额外说明一点,在第一个print语句中,我使用了换行符,起初我的写法是

  1 @array = (1..5);
  2 
  3 print @array."\n";
  4 print "@array\n";

发现运行的结果为

第一个print语句打印的并不是没有空格的元素,这是因为.用在标量

在第一个print语句中,因为使用了.,perl便把@array当成是一个标量,最终返回的是这个数组的长度5

当print和标准输入流一起用时的情况

  1 use warnings;
  2 
  3 print "Please input:\n";
  4 my @array = <STDIN>;
  5 
  6 print "*****************\n";
  7 
  8 print "The first print is:\n";
  9 print @array,"\n";
 10 
 11 print "-----------\n";
 12 print "The second print is:\n";
 13 print "@array\n";


可以看到,在第二个print打印的结果中,除了第一行,后面的每一行都有缩进了一个空格,这是使用双引号输出造成的

print与括号

加入print的调用看起来像函数调用,那它就是一个函数调用

在函数调用里,函数名后面必须紧接着一对括号

  1 print (2 + 3);

函数调用,返回的是2 + 3的值

  • 没有括号的时候,print是列表操作符,会把其后的列表里的所有东西全部输出
  • 有括号的时候,就是一个函数调用,只将括号内的东西输出来
  1 print "All in bracket: ";
  2 print (2 + 3);
  3 
  4 print "\n";
  5 
  6 print "Part in bracket: ";
  7 print (2 + 3) * 4;
  8 
  9 print "\n";

可以看到,两个函数调用输出的结果是一样的,只把括号里的内容输出来了

Perl + XS 用c/c++方便的编写perl扩展 整理一下网上的资料 1. h2xs -A wldemo  生成模板 Writing Wldemo/ppport.h Writing Wldemo/lib/Wldemo.pm Writing Wldemo/Wldemo.xs Writing Wldemo/Makefile.PL Writing Wldemo/README Writing Wldemo/t/Wldemo.t Writ 阅读详情

相关推荐

Perl基础学习10之perl模块学习

目录 模块基础知识 查看某模块是否安装 列出所有模块 Perl脚本中导入模块 Perl脚本中导入模块指定的函数 将路径下模块添加到Perl环境变量 执行程序时显式指定模块查找路径 查看Perl模块安装目录 手动编译安装Perl模块 https://metacpan.org下载 linux终端安装 检查模块是否安装成功 模块路径添加到PERL5LIB环境变量中 方法一:...

qq_21478261的博客 715

perl的输入输出

标准输入<STDIN> <STDIN>表示从标准输入中读取内容,如果没有输入会继续等待,默认读取的内容会带换行符;

bleauchat的博客 3094

5060TI显卡深度学习环境搭建:CUDA12.8与CUDNN9.8.0的完美搭配

本文详细介绍了在Win10系统下为5060TI显卡搭建深度学习环境的最佳实践,重点配置CUDA12.8与CUDNN9.8.0的完美组合。通过优化OpenCV编译选项和YOLOv5环境设置,显著提升模型训练和推理效率,帮助开发者充分发挥5060TI显卡的性能潜力。

weixin_29065791的博客 491

perl之print、printf、sprintf的使用

print printf sprintf 区别 参考文档详细用法,可以查看perl用户手册。 perldoc -f print perldoc -f printf perldoc -f sprintf他们各自支持的命令格式,都有三四种。但是常用的,也就一两种。print常用: print LIST print FILEHANDLE LIST不常用(主要是因为隐含的细节,会导致阅读上的障碍吧

学而不思则罔,思而不学则殆 4万+

从CAD图纸到GIS地图:手把手教你用Global Mapper处理DWG文件(含坐标配准)

本文详细介绍了如何使用Global Mapper将CAD图纸(DWG文件)转换为GIS地图,包括坐标配准、图层与属性转换等关键步骤。通过四参数变换和控制点匹配技术,确保数据精准转换,适用于测绘、城市规划等领域。文章还提供了高级处理技巧和质量控制流程,帮助用户高效完成GIS化工作。

weixin_29196891的博客 523

YOLO详解

本文参考知乎 https://zhuanlan.zhihu.com/p/25236464 1. YOLO的创新点 YOLO将物体检测作为回归问题求解。基于一个单独的end-to-end网络,完成从原始图像的输入到物体位置和类别的输出。 从网络设计上,YOLO与two steps的目标检测方法如RCNN、Fast RCNN和Faster RCNN的区别如下: YOLO训练和检测均是在一个单独网...

UnknownPlayer的博客 9959

perl笔记 -STDOUT&STDERR区别

Perl中有一些预定义的文件句柄。如标准输入STDIN、标准输出STDOUT、和标准错误STDERR。标准错误STDERR是一个额外的输出路径。怎样理解这句话呢?先来看个例子。 % perl -e 'print "Hello, World!\nabc"; print STDERR "Hi\n";' 输出: Hello, World! Hi abc 而不是:...

weixin_34255793的博客 431

uniapp(安卓苹果app端) - 微信小程序分享提示报错“由于不支持的分享类型无法分享到微信“,“由于应用和小程序未绑定在同意微信开放平台账号,无法分享到微信“解决办法,uniapp小程序分享失败

uni-app,安卓app,苹果app,手机app端,苹果ios,安卓Android,移动端app,分享,微信分享,微信朋友圈,微信好友,转发,vue2,vue3,App端调用手机的系统分享,微信小程序,分享功能,原生app分享小程序到微信,可分享到微信、朋友圈等,报错,uniapp分享报错由于不支持的分享类型无法分享到微信,未审核应用,uniApp安卓苹果app报错由于应用和小程序未绑定在同意微信开放平台账号,无法分享到微信,微信appid,已经配置了,还是报错,无法解决,一直提示,APP_ID错误,打包

✅ 精选推荐文章 5513

Perl读取标准输入<STDIN>、读取文件输入<>和chomp函数

读取标准输入&lt;STDIN&gt; &lt;STDIN&gt;表示从标准输入中读取内容,如果没有,则等待输入。&lt;STDIN&gt;读取到的结果中,如果没有意外,都会自带换行符。 例如,test.plx文件内容: #!/usr/bin/perl # $line=&lt;STDIN&gt;; if($line eq "\n"){ print "blank line\n"; }...

weixin_33744141的博客 2306

【STM32实物】基于STM32设计的智能仓储管理系统

近年来,随着我国仓储发展的和药品需求的不断增多,许多医院都采用药物仓储管理系统。我国的药物仓储产业已经有了长足的发展,仓库的规模不断变大,对仓储的要求也不断增高,药物的存储,识别以及对仓储环境条件的要求成为仓储的重要决策,他们可以根据不同的特点在不同场景中使用。本文详细介绍了一个基于单片机技术的智能仓储管理系统的设计与实现,这个系统可谓是集射频识别(RFID)技术和环境监测传感器于一身,旨在提高仓储操作的自动化和精确度。

嵌入式阿齐Archie 1万+

微信H5网页支付JSAPI部分用户报错:system:access_denied 的解决方案

JSAPI 支付仅支持微信内置浏览器调用。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1687

Perl 输入输出

Perl中输入输出分两类,一类是键盘输入和显示屏输出,另一类是读和写文件。

weixin_43664101的博客 1331

27、目标识别的最新进展

本文综述了目标识别(OID)领域的最新进展,重点介绍了质量评估、预处理和搜索空间缩减等关键技术。文章分析了多种质量指标,如缩减率、对完整性、召回率和精确率等,并探讨了它们的适用场景。同时,详细介绍了预处理中自动学习转换规则的方法,以及传统阻塞、排序邻域索引等搜索空间缩减技术。此外,文章还讨论了动态选择缩减技术的方法,并展望了未来研究方向,如更智能的预处理、自适应的缩减技术和与人工智能的结合。希望这些技术和方法能够为目标识别领域的研究和实践提供参考和帮助。

q5r6s7的博客 93

无涯教程-Perl - print函数

无涯教程网提供描述此函数将LIST中的表达式的值打印到当前的默认输出文件句柄或FILEHANDLE指定的句柄...此函数将LIST中的表达式的值打印到当前的默认输出文件句柄或FILEHANDLE指定的句柄中。print接受一个值列表,列表中的每个元素都将被解释为一个表达式。Perl 中的 print函数 - 无涯教程网。如果设置,则$\变量将添加到LIST的末尾。如果失败,此函数返回0,如果成功,则返回1。如果LIST为空,则打印$_中的值。以下是显示其基本用法的示例代码-以下是此函数的简单语法-

无涯教程 1091

WEB浏览器视频流播放方案

基于Media Source Extensions播放视频流 浏览器播放视频的几种方法 一、H5 video标签 在浏览器播放视频,可以使用HTML5原生的video标签。但其播放的格式使用一定限制的,目前video只支持三种格式WebM、Ogg、MP4。 WebM:WebM 文件使用 VP8 视频编解码器和 Vorbis 音频编解码器 Ogg :Ogg 文件使用 Theora 视频编解码器和 Vorbis音频编解码器 MP4: MPEG 4文件使用 H264 视频编解码器和AAC音频编解码器 上面三种

machh的专栏 2382

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Perl Learning (5) —— 输入与输出

I/O问题

delphiwcdj的专栏 4472

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Python/Perl/Shell 输出彩色字体

彩色代码 BLACK = '\033[0;30m'DARK_GRAY = '\033[1;30m'LIGHT_GRAY = '\033[0;37m'BLUE = '\033[0;34m'LIGHT_BLUE = '\033[1;34m'GREEN = '\033[0;32m'LIGHT_GREEN = '\033[1;32m'CYAN = '\033[0;36m'LIGHT_CYAN =

会飞的唐老鸭 7200

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

01. Perl 简介

Perl 是Practical Extraction and Report Language 的缩写,可翻译为 “实用报表提取语言”。Perl 是一门语法很灵活, 执行效率很高的语言, 有巨大的第三方代码库CPAN支持, 因此可以做到很多事情. 但是,笔者通常把Perl 当作一种高级的脚本语言, 用来开发一些常用的linux 工具, 编写一些日常服务器维护的脚本. Perl 特别删除对文本的处理....

Java 程序源 8343

Perl文件操作_输出到文件

1 : #!/usr/local/bin/perl2 : my $size = "/x40/x00";my $factor = "ABCD";my $data = "A" x 8314;3 : open (STDOUT, ">file1") || die ("open STDOUT failed");print pdf();sub pdf() {"%/xec/xf5/xf2/xe1/x

小虎的空间 1万+

Perl笔记:01、变量

字符型变量和数值型变量 数值型变量可以直接用 3*8 ,7+9的方式来书写 字符型变量的连接可以使用点(.)操作符,如 "abcd"."xxxx"等同于"abcdxxxx" 字符型变量可以内嵌到其他的字符型变量中,但要求的字符串必须用双引号来括起的形式,单引号的不能够内嵌 如 : $ZYQ="ZhouYueQiu" $NAME="my name is $ZYQ"注意:如果$ZYQ没有赋值,那么将用

lanyanai的专栏 980

perl快速学习记录

转载请注明出处:http://github.tiankonguse.com/blog/2015/03/05/perl-base-study/ 前言 2014年也是这个时候,我实习的时候使用perl写过几个脚本程序,这一不小心就过了一年了,那时候学的perl语法全忘记了,现在重新记录一下。 perl 的语法和其他语言有点不同, 依靠那几个特殊符号实现各种功能,不看看真是猜不

u012467492的专栏 1254

使用PERL脚本生成PDF输出

使用PERL脚本生成PDF输出 - [perl]<br />版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明<br />http://xufish.blogbus.com/logs/35754517.html<br /> 引言 <br />   文档的页面显示和打印效果一直是困扰人们的一个大问题。虽然我们可以在一种程序中打开其它程序的输出文档,但是显示效果往往大相径庭。即使使用同一种软件,如果操作平台或打印机不同的话,实际的显示或打印结果也常常事与愿违。<br />   Adobe公司最

zxianyong的专栏 3696

Perl学习总结

Perl(Practical Extraction and Report Language) 目的: 90%用于文字处理,10%用于其它。这是它的优势。学习关键: 熟悉Larry(创始人)的思维方式 + 下面所提及的框架要点第一部分 Perl的总体框架对于一门语言,我习惯从以下三个方面对其分类(他们都遵循从小-->大,从局部--->整体的顺序)注: 我觉得,这三个部分是统一的整体。比如语句= 操作数 + 操作符/程序结构(关键字);1. 组织方式 语句。组成代码的基本语句块。 由语句组成的块函数。 由块组成

林学森的技术专栏 1601

perl学习资源

perl学习资源:perl文档、FAQ社区、perl参考书籍。

第七宇林的博客 643

perl连接字符串_Perl学习01之标量数据

本篇主要介绍Perl中数字标量和字符串标量的相关基础知识;目录欢迎微信随缘关注@pythonic生物人1 数字浮点数整数数字操作符2 字符串单引号(A single-quoted string literal)双引号(A single-quoted string literal)字符串操作符重复操作符数字与字符串之间的转换3 标量变量变量命名规则标量等号赋值标量双目赋值符赋值字符串变量内插数值标量...

weixin_39777404的博客 383

Perl语言入门-第五章-输入与输出-习题

1. 习题 2. 代码与输出 cat_reverse.pl 1#-----------------------------------------------------------#2#Source:LearningPerl,chapter5,exercise-13#Date:2012-01-154#Author:xiaodongrus...

weixin_30835923的博客 115
上一篇: Perl学习-undef值和defined函数
下一篇: Verilog学习--端口
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值