🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.perl
4 messages
4 total messages Started by Qrczak Tue, 14 Apr 1998 11:23
cat
#1223
Author: Qrczak
Date: Tue, 14 Apr 1998 11:23
20 lines
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
#1224
Author: Pawel Gajda
Date: Tue, 14 Apr 1998 13:13
16 lines
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
#1225
Author: Michal Mosiewicz
Date: Tue, 14 Apr 1998 13:42
14 lines
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
#1226
Author: Qrczak
Date: Tue, 14 Apr 1998 21:57
20 lines
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