2010-04-08 60 views
7

我曾在某处读过awk中存在的一个特定功能,但不是在Perl中。我再次找不到它。我能用awk做些什么,我无法在Perl中完成?

我将不胜感激,如果有人在这里可以指出。

这可能是一个无用的琐事,但我仍然很想知道。

+1

这个问题在形式上会更有趣:在awk中有什么可能更容易。 ;) – jm666 2011-06-05 12:45:34

+0

@ jm666随时编辑 – alvin 2011-06-16 09:17:55

回答

18

perldoc perlvar

记住:中$/的值是一个字符串,而不是一个正则表达式。 awk必须是更好的东西。 :-)

+1

你可以随时做'split/regex/=> do {local $ /只要你的文件可以放进内存中 – 2010-04-08 20:25:55

+0

早在我写了File :: Stream(在CPAN上)来解决这个“问题”的时候。 :) – tsee 2010-04-09 09:52:05

+2

正是我一直在寻找的东西。 从现在开始,我将可以安然入睡。 :) – alvin 2010-04-09 10:32:56

8

的awk来perl翻译man page扒一件事的Perl不能做:

  • Perl并不试图仿效AWK的行为中不存在的数组元素简单地通过被引用而成为存在。 (左值autovivification)

但总的来说,Perl是完整的,它可以做awk可以做的所有事情。是一个awk到perl翻译的事实存在,应该足以证明:)

+0

嗯,这很有趣。 – alvin 2010-04-09 10:29:16

-2

正则表达式的子程序一样

/regex/ { 
     awk code here 
} 

模式匹配的是一个功能,我从AWK错过。

+0

你不认真吧? if(/ regex /){perl code here} – Sean 2010-04-09 05:37:55

+0

/$ regexp/and do {...}; – dsm 2010-04-09 09:35:09

+0

'{perl code here} if/regex /' – 2010-04-09 11:04:17

相关问题