2015-01-06 46 views

回答

14
perl -ne'print if 10..25' 

這是短期的

perl -ne'print if $. == 10 .. $. == 25' 

其有效地是

perl -ne'print if $. >= 10 && $. < 25' 

其可以被優化以

perl -ne' 
    next if $. < 10; 
    last if $. > 25; 
    print 
' 
+0

爲什麼Perl使用'$ .'作爲默認變量而不是'$ _'? –

+1

@RenéNyffenegger$。不是默認變量,而是獲取當前行數的變量,請參見''perldoc perlvar' –

+0

@René從['perldoc perlop'](http://perldoc.perl.org/perlop.html#Range-Operators) :「如果標量'..'的任一操作數是一個常量表達式,那麼如果該操作數與當前輸入行號('$ .'變量)相等('=='),則認爲該操作數爲真。」 – ThisSuitIsBlackNot

0

另一種方式來做到這一點是(如果使用* nix)

my @lines = `head -25 filename | tail -15` 
+0

嗯。不是非常非常的好, –

+0

也不是可移植的* nix。 – tjd