c***y 发帖数: 615 | 1 最近看到下面几行script
#!/usr/bin/perl
use warnings;
use strict;
my $x = "cat dog house
apple orange
";
open my $IN, '<',$x;
while(<$IN>){
if(/(w+)/g){
print pos,"n";
}
}
运行结果是:
3
5
查了下pos一般都是用 pos()
请教这里为什么略去()?问什么只有3,5输出?
多谢了!!! |
y****w 发帖数: 3747 | 2 很多年不用perl了 但你这个看着就别扭,直接跑没错误? |
n******t 发帖数: 4406 | 3 perl函數括號在沒歧義的時候可以不寫。
你每次match了一次之後,就進入下一個循環,當然只打印了三行,有什麼問題麼?
~~~~~~~~~~~~~~~~~~
你這裏是想\w+吧。
【在 c***y 的大作中提到】 : 最近看到下面几行script : #!/usr/bin/perl : use warnings; : use strict; : my $x = "cat dog house : apple orange : "; : open my $IN, '<',$x; : while(<$IN>){ : if(/(w+)/g){
|
y****w 发帖数: 3747 | 4 他贴的code有错 本来我还想反斜杠被老邱黑了 但这不你能贴出来嘛。这带猜谜的问题
不咋好。
他的re应该不止\w 还有丢的东西。 有了\w ,空行被跳过了。
: perl函數括號在沒歧義的時候可以不寫。
: 你每次match了一次之後,就進入下一個循環,當然只打印了三行,有什麼問題
麼?
: ~~~~~~~~~~~~~~~~~~
: 你這裏是想\w 吧。
【在 n******t 的大作中提到】 : perl函數括號在沒歧義的時候可以不寫。 : 你每次match了一次之後,就進入下一個循環,當然只打印了三行,有什麼問題麼? : : ~~~~~~~~~~~~~~~~~~ : 你這裏是想\w+吧。
|
c***y 发帖数: 615 | 5 是的是的。好奇怪啊, 我是paste 的
if(/(\w+)/g)
看我回复的时候,你的那个 w+之前的 \ 也没有啦啊
多谢你的的解答!
【在 n******t 的大作中提到】 : perl函數括號在沒歧義的時候可以不寫。 : 你每次match了一次之後,就進入下一個循環,當然只打印了三行,有什麼問題麼? : : ~~~~~~~~~~~~~~~~~~ : 你這裏是想\w+吧。
|