首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Perl标记-pe、-pi、-p、-w、-d、-i、-t?

Perl标记-pe、-pi、-p、-w、-d、-i、-t?
EN

Stack Overflow用户
提问于 2011-06-10 04:38:24
回答 3查看 71.4K关注 0票数 115

我见过许多使用不同标志运行Perl代码或脚本的方法。但是,当我尝试在google上搜索每个标志的含义时,我主要得到通用Perl站点的结果,在那里找不到关于标志或它们的用法的具体信息。

下面是我最常遇到的旗帜,我不知道它们是什么意思:

  • perl -pe
  • perl -pi
  • perl -p
  • perl -w
  • perl -d
  • perl -i
  • perl -t

如果您能告诉我其中每一个的含义和它们的一些用例,或者至少告诉我一种找出它们含义的方法,我将非常感激。

EN

回答 3

Stack Overflow用户

发布于 2011-06-10 04:45:06

-p标志基本上使用以下命令运行脚本

代码语言:javascript
运行
AI代码解释
复制
while (<>) {
# exec here
}
continue {
    print or die "-p destination: $!\n";
}

-e允许您向STDIN传递脚本

代码语言:javascript
运行
AI代码解释
复制
perl -e '$x = "Hello world!\n"; print $x;'

-i指示解释器执行脚本传递给STDIN的所有数据都是就地完成的。

-wuse warnings;相同,但在全局范围内而不是在局部范围内

-d运行Perl调试器。

票数 13
EN

Stack Overflow用户

发布于 2011-06-13 00:17:57

其他人也提到了perlrun。如果你使用B::Deparse,你可以它的意思(对于大多数事情):

代码语言:javascript
运行
AI代码解释
复制
$ perl -MO=Deparse   -p  -e 1
LINE: while (defined($_ = <ARGV>)) {
    '???';
}
continue {
    die "-p destination: $!\n" unless print $_;
}
-e syntax OK

1由“?”表示,因为它已被优化。

代码语言:javascript
运行
AI代码解释
复制
$ perl -MO=Deparse   -p -i  -e 1
BEGIN { $^I = ""; }
LINE: while (defined($_ = <ARGV>)) {
    '???';
}
continue {
    die "-p destination: $!\n" unless print $_;
}
-e syntax OK

-i设置$^I,如

代码语言:javascript
运行
AI代码解释
复制
$ perl -MO=Deparse   -p -i.bak  -e 1
BEGIN { $^I = ".bak"; }
LINE: while (defined($_ = <ARGV>)) {
    '???';
}
continue {
    die "-p destination: $!\n" unless print $_;
}
-e syntax OK

但请记住,使用双参数open,因此文件名不能以> <开头或以|开头/结尾。

票数 8
EN

Stack Overflow用户

发布于 2016-05-23 11:54:41

还有一个重要的标志-n,在列表中没有提到。

-n的工作原理与-p相同,只是默认情况下它不打印$_。这在过滤文本文件时非常有用。

通过这种方式,Perl可以在单个一行程序中替代grep | sed

例如:

perl -ne 'print "$1\n" if /Messages read: (\d+)/' <my_input.txt

将打印出在"Messages read:“之后找到的每个整数值,仅此而已。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6302025

复制
相关文章
在文件每一行开头增加字符串
首先,使用vim 打开某txt文件,输入冒号,并输入%s/^/,之后输入要添加的字符串即可
DoubleV
2022/03/25
1.2K0
js 2个空数组相加会得到一个空字符串
虽然是一个很简单的题目,但是答案区的大佬们总能给出各种奇奇怪怪的回答,其中就有一个是这样回答的:
IT工作者
2022/05/13
1.1K0
python 字符串开头结尾匹配
filename = 'spam.txt' filename.endswith('.txt') True filename.startswith('file:') False url = 'http://www.python.org' url.startswith('http:') True 或者正则 import re url = 'http://www.python.org' re.match('http:|https:|ftp:', url) <_sre.SRE_Mat
用户5760343
2022/01/10
1.7K0
为什么浏览器的用户代理字符串以 Mozilla 开头?
为什么浏览器的用户代理字符串(user-agent string)以 Mozilla 开头? 最早流行的浏览器是 NCSA Mosaic,它称自己为 NCSA_Mosaic/2.0 (Windows
前端教程
2018/03/29
1.4K0
为什么浏览器的用户代理字符串以 Mozilla 开头?
python字符串匹配开头_对python 匹配字符串开头和结尾的方法详解
1、你需要通过指定的文本模式去检查字符串的开头或者结尾,比如文件名后缀,URL Scheme 等等。检 查 字 符 串 开 头 或 结 尾 的 一 个 简 单 方 法 是 使 用str.startswith() 或 者 是str.endswith()方法。比如:
全栈程序员站长
2022/09/13
2.9K0
为什么我不建议你用去 “ ! = null " 做判空?
最终,项目中会存在大量判空代码,多么丑陋繁冗!如何避免这种情况?我们是否滥用了判空呢?
用户9239674
2022/01/22
1K0
python 匹配字符串开头和结尾
1.你需要通过指定的文本模式去检查字符串的开头或者结尾,比如文件名后缀,URL Scheme 等等。检 查 字 符 串 开 头 或 结 尾 的 一 个 简 单 方 法 是 使 用str.startswith() 或 者 是str.endswith()方法。比如:
全栈程序员站长
2022/09/16
1.3K0
Python字符串开头或末尾匹配
当你需要通过指定的文本模式去检查字符串的开头或者结尾的时候,比如文件名后缀,URL Scheme等等。
后场技术
2020/09/03
1.8K0
Qml变量名为什么不能大写开头?
大写开头一般都为对象如Item,Rectangle。而小写或下划线开头的则是变量名字或对象实例。如何使用大写开头的变量则会被解释器认为是对象,从而发生错误。 ---- 对象大写开头 例: Item对象 Item { } ---- 变量下划线,小写开头 例: item对象实例,isEnable变量名字 Item { id: item property bool isEnable: true }
Qt君
2019/07/16
1.1K0
解惑 | 为什么我根据时间戳获得的offset为空呢?
最近有一个需求,要查询某一时间戳对应的offset值,于是就想到了使用 ./bin/kafka-run-class.sh kafka.tools.GetOffsetShell --time <timestamp> ,但是我在测试的时候,发现有的时间戳会获取不到offset,是空。但是明明指定的时间戳有上报数据,肯定有对应的 offset 的。于是就谷歌,找到了这篇帖子:
create17
2020/09/24
2.8K0
Python判断字符串是否以字母开头
直接上代码吧 import re rule = re.compile('^[a-zA-z]{1}.*$') str='123' if rule.match(str) is None: print(str+'不以字母开头') else: print(str+'以字母开头') str2='a12' if rule.match(str2) is None: print(str2+'不以字母开头') else: print(str2+'以字母开头')
week
2020/03/12
3K0
为什么阿里禁止 boolean 类型变量使用 is 开头?
平时工作中大家经常使用到 boolean 以及 Boolean 类型的数据,前者是基本数据类型,后者是包装类,为什么不推荐使用 isXXX 来命名呢?到底是用基本类型的数据好呢还是用包装类好呢?
JavaFish
2022/01/17
1.8K0
为什么阿里禁止 boolean 类型变量使用 is 开头?
Dart字符串判空
NullPointerExp是无数java程序员都想消除的问题,OC里,nil对象调方法返回的是nil(这种做法,仁者见仁,智者见智);kotlin和swift通过optional机制,通过编程过程中强化Nullable概念,来避免NPE。
DSoon
2018/12/10
14.7K4
什么?字符串为空?
当字符串为null,undefined,NaN,0,false,""这几个时,if(value)的结果都为false,if(!value)包含了我们常见的空值情况,如果你想要简便的方式,便可以使用它
说故事的五公子
2020/07/21
1.7K0
java 判断字符串是不是以数字开头
目录 1 代码 1 代码 //判断字符串是不是以数字开头 public static boolean isStartWithNumber(String str) { Pattern pattern = Pattern.compile("[0-9]*"); Matcher isNum = pattern.matcher(str.charAt(0)+""); if (!isNum.matches()) { return fa
一写代码就开心
2022/07/09
1.4K0
我曾得到的最佳编程建议
我曾得到的最佳编程建议   这是一个有关于我得到的一些专业性编程建议的故事,以及它如何影响了我的职业生涯。我真心觉得此建议真可谓是字字珠玑,所以我想分享给大家。  建议   还是在1996年,我刚
用户1289394
2018/02/27
7760
我曾得到的最佳编程建议
[781]python去除字符串中开头|结尾|所有字母、数字
参考:https://blog.csdn.net/qq_25792799/article/details/80322889 https://blog.csdn.net/qq_40771567/article/details/86561158 https://www.cnblogs.com/pyse/p/9847812.html http://dy.163.com/v2/article/detail/DMA5CHFN0511RVML.html
周小董
2020/04/08
2.9K0
scrapy框架| 我的第一个Scrapy爬虫
今天咱们就来写一篇简单的、轻松的文章,当然也是我们开始正式去使用Scrapy来写我们的第一个爬虫,我会通过这个爬虫来给大家一一讲解每一句话是啥意思,当然阅读这篇文章之前,我希望大家先去阅读Python|初识scrapy爬虫 ,阅读完后再来看这篇文章。废话不多说了,看下面吧!
Python进击者
2019/06/21
3880
java判断字符串为空
if(s == null ||"".equals(s)); 方法二: 比较字符串长度, 效率高, 是我知道的最好一个方法:
斯文的程序
2019/11/07
2.7K0
【说站】python有哪些is开头的字符串方法
以上就是python is开头的字符串方法,希望对大家有所帮助。更多Python学习指路:python基础教程
很酷的站长
2022/11/24
6410

相似问题

C语言入门

65

尝试使用C语言入门

96

C语言http媒体流入门

11

Windows下JNI和C语言入门

44

新语言入门

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档