use Tie::File; my $file = '/path/to/file'; tie my @lines,'Tie::File',$file or die $!; @lines = grep{ is_wanted($_) }@lines; untie @lines; sub is_wanted{ my ($line) = @_; my $return = 0; if($bedingung_dass_Zeile_erhalten_bleiben_soll){ $return = 1; } return $return; }