我在连接到远程服务器的个人计算机上编写脚本。我认为远程服务器安装了Perl 4.0或更低版本,这就是为什么它无法识别相同的原因。是否有另外一个chomp
命令?如果我有Perl 4,我该如何chomp一个字符串?
2
A
回答
5
这不是一个确切的替代品,但你可以尝试:
$var =~ s/\r?\n?$//
这将剥夺或者CRLF(DOS),LF(UNIX),CR(Mac吗?)。
正常的chomp操作符总是将当前定义的$INPUT_RECORD_SEPARATOR
去掉当前的O/S。
+0
好主意,但如果$ var可能包含多个\ n分隔的行,请注意 - 根据Perl 4在正则表达式中解释“$”的方式,上述可能会删除第一个\ n而不是最后一个。 – 2009-04-28 18:30:05
0
我相信chop()被用在pre-5 perl中。不如chomp()当然有用。如果你正在处理随机输入你很可能会更好使用正则表达式,但如果你总是解析UNIX格式的文件:
while (<F>) {
chop();
do_stuff();
}
如下状态的评论,印章()始终删除最后左值的字符,而不仅仅是换行符(或var结尾的内容)。我知道这个(因此“不如chomp()”评论)有用,但忘了实际输入它。
1
去砍路线是不好的建议,我会使用正则表达式,他们更可持续和透明的其他人。习惯性地修改记录变量最终会最终影响一些不好的包并导致奇怪的事情发生。
相关问题
- 1. 如果the_meta()为空,我该如何回显一个字符串?
- 2. 如何切割字符串?如果我有一个字符串例如
- 3. 如果我在Python中有这个字符串,我该如何解码它?
- 4. 我该如何写这个字符串?
- 5. 我如何读取一个字符,如果我有该字符串的初始指针
- 6. JavaScript的 - 我该如何检查,如果一个字符串的一部分或等于另一个字符串
- 7. 我该如何让Perl每次从STDIN输入一个字符?
- 8. 我该如何让Perl解释一个代表地址的字符串变量
- 9. 如果检测到空白,我该如何分割一个字符串?
- 10. 我该如何一次发送这个字符串一个字符?
- 11. 文本如果一个字符串中有一个字,并显示该字符串,如果它在c#
- 12. 我该如何覆盖字符串
- 13. 我应该如何声明字符串?
- 14. 我该如何替换json字符串?
- 15. MongoDB中,我应该创建两个集合或一个,如果我有一个大字符串场
- 16. 我如何在一个字符串
- 17. 我如何在一个字符串
- 18. 我如何标记一个字符串?
- 19. 我应该如何替换空字符串的单个字符
- 20. 不打印字符串,如果我有一个空列表
- 21. 我该如何操纵一个nginx变量字符串
- 22. 如何我的JSON字符串应该是一个图像URL
- 23. 我该如何测试一个字符串的格式?
- 24. 我应该如何分隔一个字符串?
- 25. 我该如何更换一个字符串?
- 26. 我该如何大写字符串中所有单词的第一个字母?
- 27. 斯卡拉:字符串Chomp
- 28. 我该如何编写这个PHP字符串,它内部有一个等号?
- 29. 如果我使用for循环来生成一个字符串列表,我该如何创建一个变量列表,而不是一个字符串列表?
- 30. 如果consoleKey.Escape没有被按下,我该如何返回字符串值?
Perl 4?真的吗? Perl 5已经出现了将近15年 - 自1994年10月17日以来,确切而言就是这样。你连接到一台尚未升级的机器?我建议再次检查。 – Tanktalus 2009-04-28 15:17:29
有些机器只有Perl 4才有。你不必喜欢它,但它是真的。 – 2009-04-29 14:23:16