当人们说“Perl非常善于解析”时,人们的意思是什么?

时间:2009-12-11 14:53:21

标签: perl parsing scripting text-parsing scripting-language

当人们说“Perl非常善于解析”时,人们的意思是什么?

Perl如何比其他脚本语言(如Python或Ruby)更好或更强大?

5 个答案:

答案 0 :(得分:19)

他们的意思是Perl最初是为处理文本文件而设计的,并且有许多功能可以让它变得简单:

  • Perl有许多字符串处理功能:substrindexchomplengthgrepsort,{{1 },reverselc,...
  • Perl会根据值的使用方式自动在数字和字符串之间进行转换。 (例如,您可以从文件中读取字符串'100'并添加一个字符串,而无需先进行字符串转换为整数转换)
  • Perl自动处理与平台编码(例如Windows上的CRLF)和程序中的逻辑换行符(“\ n”)之间的转换。
  • 正则表达式已集成到语法中,而不是单独的库。
  • Perl的正则表达式是功能和功能的“黄金标准”。
  • Perl具有完整的Unicode支持。

Python和Ruby也有很好的文本处理功能。 (特别是Ruby从Perl中获得了很多灵感,就像Perl从许多其他语言中无耻地借用它一样。)要问哪个更好是没有意义的。使用你喜欢的。

答案 1 :(得分:11)

不要将Perl的优势声明作为另一种语言失败的陈述。 Perl适用于文本处理,但这并不意味着Ruby或Python很糟糕。

当人们谈论Perl“善于解析”时,他们主要回应Perl的历史;它是在重型文本处理不容易的那一天发明的。尝试用C或C ++做一些(Java还没有发明,也是!)。回到白天,拉里试图用sed和awk做他的工作,但遇到他们的局限。他制作了一个工具,使文本更容易使用。

Perl仍然非常适合文本处理任务,但现在很多其他语言也是如此。

答案 2 :(得分:4)

Perl也适用于ETL或批处理运动。获取文件的代码量很少;将其推送到split以获取map,对记录执行一些逻辑业务操作,然后将其写回磁盘。

我认为数据处理的数据处理比数据解析更多,但数据处理是批量数据解析。

答案 3 :(得分:1)

与C / C ++ / Java相比,Perl在文本解析方面非常出色。

答案 4 :(得分:0)

这可能是因为人们习惯了它的构建方式,如perl documentation中所述,因此很多人将文本文件解析与Perl相关联已经司空见惯。不排除Ruby或Python,它只是一个家喻户晓的名字恕我直言。

  

Perl是一种优化的语言,用于扫描任意文本文件,从这些文本文件中提取信息,以及根据该信息打印报告。它也是许多系统管理任务的好语言。该语言旨在实用(易于使用,高效,完整)而非美观(微小,优雅,最小)。