Perl 如何將一組序列從其超集組中集中出來,以在代碼塊中進行處理
任務失敗完成:
$ for i in {1..9} ;{ echo $i ;} |perl -pe 'my $s; if (/3/) { while(1) { $s .= $_; print $s; last if (/7/) } } '
使用 Perl-pe選項輸出以下字串行:
1
2
3
4567
8
9
uj5u.com熱心網友回復:
使用這個 Perl 單行:
for i in `seq 9` ; do echo $i; done | \
perl -lne 'if ($_ == 3 .. $_ == 7) { push @a, $_; print @a if $_ == 7; next; } print;'
1
2
34567
8
9
Perl 單行器使用這些命令列標志:
-e:告訴 Perl 查找行內代碼,而不是在檔案中。
-n:一次回圈輸入一行,$_默認情況下將其分配給。
-l: 在執行行內代碼之前去除輸入行分隔符("\n"默認情況下在 *NIX 上),并在列印時附加它。
還請參見
perldoc perlrun::如何執行 Perl 解釋器:命令列開關
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/498065.html
標籤:perl
