perl学习之I/O基础
1.从标准输入进行输入<STDIN>
2.从钻石操作符进行输入<>
3.参数调用@ARGV
4.向标准输出进行输出
5.用printf进行格式化输出
1.<STDIN>
while(<STDIN>)
{
print "I saw $_";
}
while(defined($_ = <STDIN>)){
print "I saw $_";
}
NOTE:行输入操作符<STDIN>和Perl最喜欢的缺省变量($_)之间没有任何关系。
foreach (<STDIN>){
print "I saw $_";
}
这个输入到底何时结束呢?????列表输入结束完才进入循环。
foreach 的缺省控制变量是$_。
foreach 循环中,行输入操作符用在列表上下文中(因为foreach只能遍历一个列表)。所以他必须读入所有的输入,然后循环才能开始执行。
2.<>
while(defined($line = <>)){
chomp($line);
print "It was $line that I saw!\n";
}
while(<>){
chomp;
print "It was $_ that I saw!\n";
}
<>钻石操作符通常用来处理整个输入,所以如果你的程序中不止一次使用了它,那么一般来说这是一个错误。
<>钻石操作符读取输入,但输入本身(一般在缺省情况下)是在$_中。
<>钻石操作符会自动继续下一个文件,很像你对cat或其他标准工具所期望的那样。
2.参数调用
@ARGV当程序启动后,已经被填入了调用参数的完整列表。
可以用shift对@ARGV操作。
3.向标准输出进行输出
print 操作符取一个值得列表,然后把每一个条目(当然作为字符串)按顺序发送到标准输出,一个接一个。它不添加额外的字符在条目的前面、后面或两个条目之间。
它不会(缺省地)添加任何东西,但这个缺省行为可以改变。
print @array; #打印条目的一个列表
print "@array"; #打印一个字符串(包含一个替换的数组) 《===这个经常用,但没看懂。
print 是寻找一个字符串列表来打印,它的参数计算就在列表上下文中进行。<>钻石操作符(作为一种特殊的行输入操作符)在列表上下文中会返回一个行的列表。
所以print 和 <>可以配合使用。
eg: print <> ;
print sort <>;
如果print的调用看起来像一个函数调用,那么它就是个函数调用。
eg: print (2+3);
print (2+3)*4 ###值为4,打印出5。
规则:“如果它看起来像一个函数调用,那么它就是一个函数调用”适用于Perl的所有列表函数,而不仅仅是print。
4.用printf格式化输出
5.数组与printf
不能用一个数组作为printf的参数,数组可以含有任意数目的条目,一个给定的格式字符串只能与一定数目的条目一起工作。
但格式字符串可以动态给出,利用数组。
perl学习之I/O基础的更多相关文章
- Perl 学习笔记-正则表达式基础篇
1.Perl中的正则表达式 在Perl中叫做模式, 是一个匹配(或不匹配)某字符串的模板, 是一种小程序, 对于一个字符串, 要么匹配, 要么不匹配. 使用简易模式: 将模式写在一对正斜线(/)中即可 ...
- JavaScript学习(1)之JavaScript基础
JavaScript学习(1)之JavaScript基础 由于工作原因,开发语言逐渐以JavaScript为主,所以,抽空学习了下JavaScript语法.等现阶段的工作稳定之后,陆续会分享下自己在学 ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- python学习之路-day2-pyth基础2
一. 模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,第三方库存放位置:site-packages sys模块简介 导入模块 import sys 3 sys模 ...
- 转 iOS Core Animation 动画 入门学习(一)基础
iOS Core Animation 动画 入门学习(一)基础 reference:https://developer.apple.com/library/ios/documentation/Coco ...
- Django学习系列之Form基础
Django学习系列之Form基础 2015-05-15 07:14:57 标签:form django 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追 ...
- Java学习笔记:语言基础
Java学习笔记:语言基础 2014-1-31 最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...
- CgLib动态代理学习【Spring AOP基础之一】
如果不了解JDK中proxy动态代理机制的可以先查看上篇文章的内容:Java动态代理学习[Spring AOP基础之一] 由于Java动态代理Proxy.newProxyInstance()的时候会发 ...
- (转)深度学习word2vec笔记之基础篇
深度学习word2vec笔记之基础篇 声明: 1)该博文是多位博主以及多位文档资料的主人所无私奉献的论文资料整理的.具体引用的资料请看参考文献.具体的版本声明也参考原文献 2)本文仅供学术交流,非商用 ...
随机推荐
- 分布式通信-tcp/ip 广播
服务端 /** * 广播 */ public class MulticastServer { public static void main(String[] args) { try { //地址是2 ...
- MySql下载地址
因为下载mysql需要注册,很麻烦,记录下下载地址: My sql 5.1.71 http://cdn.mysql.com/Downloads/MySQL-5.1/mysql-5.1.71-win32 ...
- vi编辑器查找
当你用vi打开一个文件后,因为文件太长,如何才能找到你所要查找的关键字呢? 你在命令模式下敲斜杆( / )这时在状态栏(也就是屏幕左下脚)就出现了 “/” 然后输入你要查找的关键字敲回车就可以了. 如 ...
- window server 2012R2服务器部署遇到的问题
1. 出现问题原因:服务器的Framework4.5 未安装, 解决办法:从网上下载之后,安装,然后重启服务器即可 2. 出现问题原因:内存不足或者虚拟内存不足 解决办法:设置虚拟内存来解决,步骤如下 ...
- LogBack日志小记
优势 看了一下Logback的官方文档,说换成LogBack的原因大概有一下几个: 1. 说是logBack的设计开发和log4j是同一批人员,重写了内核,习惯上总体跟log4j一样,不会有太多生疏感 ...
- plpgsql: 动态插入数据 1
--目标:1.建立一个函数实现 输入一个表名(tableName)tableName,一个JSON串{feildName1:feildVale1,feildName2:feildVale2} -- 然 ...
- 非常实用的Linux 系统监控工具
随着互联网行业的不断发展,各种监控工具多得不可胜数.这里列出网上最全的监控工具.让你可以拥有超过80种方式来管理你的机器.在本文中,我们主要包括以下方面: 命令行工具 网络相关内容 系统相关的监控工具 ...
- EJB配置jboss数据源
1.数据源的模板在\jboss-4.2.3.GA-jdk6\jboss-4.2.3.GA\docs\examples\jca\下2.编辑数据源文件,比如mysql-ds.xml,命名规则是名称-ds. ...
- vue+element ui项目总结点(五)Carousel 走马灯组件、Collapse 折叠面板、Tree 树形控件
<template> <div class="ele_test_box"> <!-- 常用效果 Popover 弹出框组件 具体属性查看官方文档--& ...
- HDU 1398 Square Coins 平方硬币 (普通母函数,水)
题意: 有17种硬币,每种的面值为编号的平方,比如 1,4,9,16.....给出一个数字,求组成这个面值有多少种组法? 思路: 用普通母函数解,主要做的就是模拟乘法,因为硬币是无限的,所以每个构造式 ...