Thread View: pl.comp.lang.perl
4 messages
4 total messages
Started by Qrczak
Tue, 14 Apr 1998 11:23
cat
Author: Qrczak
Date: Tue, 14 Apr 1998 11:23
Date: Tue, 14 Apr 1998 11:23
20 lines
1287 bytes
1287 bytes
Jak najprościej zrobić cata (tzn. przekazać stdin do stdout)?
system "cat" - Nie chciałbym odpalać zewnętrznego programu do tak
błahego zajęcia.
print while <STDIN> - Niepotrzebnie dzieli tekst na linie. Plik może być
nawet binarny, więc jego "linia" może wtedy zająć i megabajty...
Może coś z sysread/syswrite? Ale jaką wielkością bloku najlepiej?
Czy nie pokłóci się przypadkiem z buforowaniem - może trzeba $| = 1 ?
A może jednak założyć, że system "cat" zrobi to optymalnie?
Oczywiście jest to tylko fragment większego programu :-)
--
QRCZAK
__("< Marcin Kowalczyk
\__/ qrczak@knm.org.pl
^^ http://qrczak.home.ml.org/
Re: cat
Author: Pawel Gajda
Date: Tue, 14 Apr 1998 13:13
Date: Tue, 14 Apr 1998 13:13
16 lines
1083 bytes
1083 bytes
Qrczak wrote: > > Jak najprościej zrobić cata (tzn. przekazać stdin do stdout)? > > system "cat" - Nie chciałbym odpalać zewnętrznego programu do tak > błahego zajęcia. > > print while <STDIN> - Niepotrzebnie dzieli tekst na linie. Plik może być > nawet binarny, więc jego "linia" może wtedy zająć i megabajty... Ale jakie to ma znaczenie ? Zawartość nie jest przecierz zmieniana... Zgrabniej (i szybciej) będzie napisać print <STDIN> i STDIN zostanie wyrzucone za jednym zamachem Paweł
Re: cat
Author: Michal Mosiewicz
Date: Tue, 14 Apr 1998 13:42
Date: Tue, 14 Apr 1998 13:42
14 lines
1138 bytes
1138 bytes
Pawel Gajda wrote: > Zgrabniej (i szybciej) będzie napisać print <STDIN> > i STDIN zostanie wyrzucone za jednym zamachem Czy ja wiem, czy zgrabniej... Może zgrabniej wygląda. Gorzej jak będziesz chciał przerzucić w ten sposób plik o wielkości np. 100MB, a masz tylko 99MB pamięci wirtualnej :-) Michał -- WWW: http://www.lodz.pdi.net/~mimo tel: Int. Acc. Code + 48 42 148340 add: Michal Mosiewicz * Bugaj 66 m.54 * 95-200 Pabianice * POLAND
Re: cat
Author: Qrczak
Date: Tue, 14 Apr 1998 21:57
Date: Tue, 14 Apr 1998 21:57
20 lines
1530 bytes
1530 bytes
On Tue, 14 Apr 1998, Pawel Gajda wrote:
> Zgrabniej (i szybciej) będzie napisać print <STDIN> i STDIN zostanie
> wyrzucone za jednym zamachem
Jeszcze gorzej; dane mogą być dowolnie duże!
Poza tym wtedy wynik będzie dostępny dopiero po przetworzeniu całości.
Jeśli odpalam
program_który_powoli_produkuje_duży_wynik |cat |less
to cat w niczym nie przeszkadza, można oglądać początek podczas gdy
reszta się jeszcze nie wygenerowała. Najlepiej żeby ten kawałek w perlu
miał tę samą własność; najwyżej modulo pewna ziarnistość wynikająca
z jakiegoś buforowania i grupowania danych w paczki.
--
QRCZAK
__("< Marcin Kowalczyk
\__/ qrczak@knm.org.pl
^^ http://qrczak.home.ml.org/
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads