簡體   English   中英

Perl單行代碼:如何跳至@ARGV中的下一個文件

[英]Perl one-liner: how to skip to the next file in @ARGV

我正在考慮如何“短路”在perl -ne循環中讀取文件。 如果遇到某種情況,我想放棄當前文件並繼續執行@ARGV中的下一個文件。 這類似於GNU awk的方便的nextfile命令。

像這樣:

perl -ne 'do_something(); next_file if some_condition()' files ...

閑逛,我發現close ARGV可以達到“轉到下一個文件”的目標。

還有其他更神奇的方法來做到這一點嗎?

不,關閉ARGV是執行此操作的正確方法。

如glenn jackman所述,這具有重置$.的副作用$. 行計數器(使用ARGV時,它通常會在多個文件中繼續遞增),因此您可能需要保存和恢復它:

my $line = $.;
close ARGV;
$. = $line;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM