mam ten mały skrypt Perla, który ma uporządkować plik:Dlaczego Tie :: Plik dodaje wiersz, jeśli plik jest posortowany?
#!/usr/bin/perl
use strict;
use warnings;
use Tie::File;
tie my @lines, 'Tie::File', 'fileToBeSorted.txt' or die $!;
printf "line count before: %d\n", scalar @lines;
@lines= sort @lines;
printf "line count after: %d\n", scalar @lines;
untie @lines;
Uruchomiony z tego wejścia (fileToBeSorted.txt
)
one;4;1
two;3;2
three;2;3
four;1;4
skrypt wyprowadza
line count before: 4
line count after: 5
i rzeczywiście , posortowany plik zawiera pustą piątą linię. Dlaczego tak jest i jak mogę temu zapobiec?
Nie wiem, ale rozwiązaniem jest "sort grep {$ _} @ lines' – kjprice