使用<>在Perl。如何使用它 ?
如果我们只是写
<>;

while(<>)

在这两种情况下,程序在做什么?

解决方法

上面的答案都是正确的,但是如果您了解UNIX的一般UNIX命令行用法,可能会更加明显。想要一个命令来处理多个文件是很常见的。例如。
ls -l *.c

命令行shell(bash等)将其转换为:

ls -l a.c b.c c.c ...

换句话说,除非模式不匹配,否则ls不会看到’* .c’。在命令提示符下尝试(不是perl):

echo *

你会注意到你没有得到*。

所以,如果shell正在给你一堆文件名,而你想依次查看每个人的数据,perl的<>运算符给你一个很好的方法,它把下一个文件的下一行(或stdin,如果没有文件命名)放入$ _(默认标量)。

这是一个穷人的grep:

while(<>) {
   print if m/pattern/;
}

运行这个脚本:

./t.pl *

将打印出与给定模式匹配的所有文件的所有行。

cat /etc/passwd | ./t.pl

将使用猫生成一些文本行,然后通过perl中的循环来检查该模式。

所以你看到,虽然(<))让你得到一个非常标准的UNIX命令行行为...处理我给你的所有文件,或处理我管道给你的东西。

Perl中使用的是什么?的更多相关文章

  1. 为什么PATH不适用于从Xcode执行的自定义shell脚本?

    我观察到Xcode在运行脚本阶段执行的自定义shell脚本没有设置任何环境变量.他们有很多其他变量,但不是PATH.有可能解决这个问题,怎么样?我只想运行一个应该在路径中的工具,我不想开始手动检查可能的位置.解决方法你可以明确地找到用户.bashrc,.profile等.或者更好的是,运行类似的东西这不会有污染其他变量的风险.

  2. ios – Xcode Server 4.0 git从构建触发脚本推送

    我为一个托管在github上的项目安装了一个XcodeBot.我按照步骤和设置机器人来使用我现有的SSH密钥.验证成功,项目结算和建立.然后,我在预触发器操作中添加了一个shell脚本,它增加了plist中的版本,将其标记,并将该更改提交到github.但是当我尝试从shell脚本执行gitpush时,我得到:–推送到git@github.com:spex-app/spex-ios.git权限被拒

  3. ios – 超时等待120秒的模拟器启动

    看起来像Teamcity代理(TC版本是9.0EAP)不能通过测试shell脚本运行iOS模拟器.我正在使用BuildStep:命令行,它运行自定义脚本并将参数传递给它.通过使用shell脚本../bin/mac.launchd.sh,在MacOSXYosemite10.10上启动了Teamcity代理.构建日志错误:我的shell脚本进行测试:我也试过从这个question的解决方案,但没有帮助

  4. 在附加到XCode项目的shell脚本中无法识别$SRCROOT

    尝试运行附加到我的xcode项目的简单脚本,如下所示……如果我在XCode之外运行脚本似乎运行正常但是从XCode运行时我收到以下错误…似乎SRCROOT变量在脚本中是不可检测的,但我的理解是这是应该传递并可由脚本访问的环境变量之一.任何想法?解决方法原来这是我的错.该剧本实际上根本没有被调用.在XCode中,我指的是使用脚本的路径…更正了问题,我现在可以从我的脚本访问$SRCROOT.

  5. Swift快速入门五集合

    相关文章Swift快速入门(一)第一个Swift程序Swift快速入门(二)基本数据类型Swift快速入门(三)运算符Swift快速入门(四)流程控制前言Swift提供了数组和字典两种集合类型来存储数据,Swift的数组用来存储顺序相同类型相同的类型,字典则采用kay-value的形式存储数据。修改字典字典提供了updataValue()方法来修改字典的value值,该方法会返回一个Sting?

  6. Swift设计模式之命令模式

    转自Swift设计模式原文Design-Patterns-In-Swift

  7. Ceph部署二RGW搭建

    背景CephRGW简介CephRGW基于librados,是为应用提供RESTful类型的对象存储接口。环境规划如上篇文章《Ceph部署(一)集群搭建》所述:4台服务器:1台作为Monitor,1台作为OSDRGW,还有两台作为OSD。部署CephRGW进入上文所述的my-cluster目录。该脚本会连接RGW,创建一个bucket并列出所有的bucket。正常的输出应该为:小结通过ceph-deploy命令,已经大大地简化了对Ceph集群和RGW的安装和配置。但如果想挑战下自己,或者想让自己了解更多,试

  8. EFColorPicker - 一个纯 Swift 的轻量级 iOS 颜色选择器

    EFColorPicker是一个纯Swift的轻量级iOS颜色选择器,受MSColorPicker启发。或执行以下命令:环境iOS8.0+Xcode9.0+Swift4.0+安装EFColorPicker可以通过CocoaPods进行获取。只需要在你的Podfile中添加如下代码就能实现引入:备注EFColorPicker的第一个版本从MSColorPicker转换而来,在此对MSColorPicker的作者sgl0v表示感谢!作者EyreFree,eyrefree@eyrefree.org协议EFQRC

  9. 使用LLDB调试Swift

    LLDB是个很好的选择。接下来我会探讨一些工作中常用到的一些LLDB调试技巧。LLDB拥有大量有用的调试工具。LLDB的bugreport命令可以生成一份详细的app当前状态的报告。这些命令有针对C++,Objective-C,Swift和RenderScript的。使用LLDB的这些命令可以让调试变得更自动化。process用于控制要调试的进程,可把LLDB依附到特定target或从target上解绑。processstatus用于打印当前进程及断点处的相关信息:使用如下命令可继续执行:这等同于Xcod

  10. swift – Xcode 8 Shell脚本调用错误

    我试图解决这个问题几个小时,但它仍然存在.在论坛上尝试了一切,没有任何帮助.我正在使用Cocoapods最新版本1.2.0.beta.1当我尝试构建项目时,它给了我:再次安装pod并运行该项目.使用命令:

随机推荐

  1. 数组 – Perl中有什么神奇的数组?

    在Perldocumentationforreverse中,我发现:“请注意,将数组反转到自身(如@a=reverse@a)将尽可能保留不存在的元素;即对于非魔法数组或具有EXISTS和DELETE方法的绑定数组.什么属性区分神奇和非魔法阵列?解决方法一个神奇的阵列是一个执行它的操作不仅仅是改变内容.只有内置的魔术阵列是@ISA,而且这是非常不明显的.正如句子所暗示的,魔术阵列主要是一个绑定的阵列

  2. perl – 使用“isa”方法的最佳方式?

    什么是“最好的”使用方式“isa()”可靠?解决方法Scalar::Util实现明确更好.它避免了eval{}的开销,它总是导致设置一个附加变量.Scalar::Util实现更容易阅读.如果eval也失败了,我相信发生的是你在树之前向后走到eval之前的状态–这是如何实现复位状态.这带来了额外的故障开销.基准根本不是一个对象对象传递isa检查对象出现故障现象检查测试代码:我使用这是为i486-linux-gnu-thread-multi建立的perl,v5.10.1(*),以及Scalar::Util,1

  3. 在CORE :: GLOBAL中哪些Perl内置函数不能被覆盖?

    解决方法toke.c中任何值为负的值都可以被覆盖;所有其他人可能不会.你可以看源码here.例如,我们来看看第10,396行的waitpid:由于waitpid为负数,因此可能会被覆盖.grep怎么样?这是积极的,所以不能被覆盖.这意味着以下关键字不能被覆盖:chop,defined,delete,do,dump,each,else,elsif,eval,exists,for,foreach,format,glob,goto,grep,if,keys,last,local,m,map,my,next,no

  4. 如何在Perl中打印由换行符分隔的列表元素?

    什么是最简单的打印所有列表的元素以Perl中的换行符分隔的元素?解决方法在Perl5.10中:其他方式:或:或者怎么样?

  5. 使用Perl如何获取文件大小(以兆字节为单位)?

    我想以磁盘的形式获取磁盘上的文件大小.使用-s运算符给出了以字节为单位的大小,但是我将假设,然后将其除以魔术数字是一个坏主意:我应该使用只读变量来定义1024,还是有一种编程方式来获取一千字节的字节数?

  6. perl – 如何测试/分类CPAN模块的utf8正确性

    例如:File::Slurp,如果你将读取该文件您将根据命令行开关获得不同的结果,并且perl-CSDA将无法正常工作.伤心.(是的,我知道比Encode::decode(“utf8”,read_file($file,binmode=>’:raw’));将帮助,但是SAD.我的问题:>在这里任何首选方式,如何测试/分类什么CPAN模块是utf8安全/准备/正确?>这里是像Perl::Criticforutf8这样的东西–什么将检查模块源可能的utf8不正确?总结以上是DEVMAX为你收集整理的perl–如

  7. 如何删除Perl字符串中的空格?

    如果我声明一个值为’3’的变量$myString.是否有任何功能来删除返回值的空格.有点像SomeFun然后返回’3′.输出:你可以注意到’vid’=>‘0’,上面的代码从theanswer.我正在研究它.总结以上是DEVMAX为你收集整理的如何删除Perl字符串中的空格?如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

  8. 如何在mod_perl2下运行Devel :: Cover?

    Unfortunately,Devel::Coverdoesnotyetworkwiththreads.它也不适用于prefork.在startup.pl中使用,Devel::Cover问题perl5.8.9,Apache2.2.13.我的操作系统是FreeBSD,如果重要.同样的问题是reportedforwin32.更新:PerlTrace全部输出解决方法邪恶之源似乎是Apache::DBI.

  9. 如何使用Perl中的C类?

    我有一套用C写的课.从Perl脚本中调用它们的最佳方法是什么?

  10. perl – 在Emacs中以双模式更好的缩进

    我正在使用Emacs来修改Perl和Verilog交织的代码.我正在使用two-mode-mode在两者之间切换,这样可以预期.问题是perl代码与//一行一行地表示;如下图所示:而双模式则认识到它是Perl,它是逐行的,所以缩进等在线上无意义.我想做的是使Perl代码像往常一样格式化,但忽略//;字符.有什么想法吗?我刚刚开始偷看模式文件,它们是可以理解的复杂的,所以任何提示都不会感激!

返回
顶部