如果我有Perl 4,我该如何选择一个字符串?

时间:2009-04-28 13:41:24

标签: perl syntax perl4

我正在我的个人计算机上编写一个连接到远程服务器的脚本。我认为远程服务器安装了Perl 4.0或更低版本,这就是它无法识别相同的原因。是否有chomp命令的替代方法?

3 个答案:

答案 0 :(得分:5)

这不是一个确切的替代品,但您可以尝试:

$var =~ s/\r?\n?$//

将删除CRLF(DOS),LF(Unix),CR(Mac?)。

普通的chomp操作符总是去掉当前O / S当前定义的$INPUT_RECORD_SEPARATOR

答案 1 :(得分:1)

走向切断路线是不明智的,我会使用正则表达式,他们更可持续,对其他人透明。习惯性地修改记录变量最终将最终判断一些不良包装并导致奇怪的事情发生。

答案 2 :(得分:0)

我相信chop()用于pre-5 perl。当然没有chomp()那么有用。如果您正在处理随机输入,那么最好使用正则表达式,但如果您总是在解析unix格式的文件:

while (<F>) {
  chop();
  do_stuff();
}

正如下面的评论所述,chop()总是删除左值的最后一个字符,而不仅仅是它是换行符(或者行结尾var中的内容)。我知道这个(因此“没有像chomp()那样有用”的评论)但不知何故忘了实际输入它。

相关问题