perldoc perlipc IPC - InterProcess Communication
It's a trick devil of a subject, lots of restrictions (OS) and bugs (also OS) when you delve too deep. > -----Original Message----- > From: Tirthankar C. Patnaik [mailto:[EMAIL PROTECTED]] > Sent: Friday, April 12, 2002 2:34 PM > To: Nikola Janceski > Cc: [EMAIL PROTECTED] > Subject: RE: Input | Program | Output : help > > > Thanks a lot. Your guess was right. The second part was what > I needed. I am > still not a little confused about the first, though. They do not teach > this in the institution where I study. :) > > Could you give a good reference to this things, IPC, pipes, > fifo, sockets, > etc? I could not make much headway, from what I read in the > man pages, and > perldoc. > > Thanks lot, > > -tir > > > > > On Fri, 12 Apr 2002, Nikola Janceski wrote: > > > no... Open2 opens 2 filehandles for a command. > > > > this: > > open2(*READ, *ZIPIT, "/apps/bin/zip $FORM{'zipfile'} -@ 2>&1"); > > opens a filehandle READ that the command reads from AND > > opens a filehandle ZIPIT that the command outputs from > > > > at a command prompt this is what it means: > > > > cat | /apps/bin/zip somefile.zip -@ 2>&1 | more; > > ^ ^ > > READ ZIPIT > > > > That's where the file handles are. > > Don't know what your command is for or what exactly you are > trying to pass > > but here is my guess: > > > > You really just want to pipe the open to output only: > > > > open(OUTFILE, ">output.file") || die "Can't open for write: $!"; > > open(COMMAND, "bunzip2 -c $ParseFile | discretise $delta > $BOD $EOD |") or > > die "Cann't execute: $!"; > > while(<COMMAND>){ > > print OUTPUT; > > } > > close COMMAND; > > close OUTFILE; > > > > > > > > > -----Original Message----- > > > From: Tirthankar C. Patnaik [mailto:[EMAIL PROTECTED]] > > > Sent: Friday, April 12, 2002 2:00 PM > > > To: Nikola Janceski > > > Cc: [EMAIL PROTECTED] > > > Subject: RE: Input | Program | Output : help > > > > > > > > > > > > > > > > did you try reading the docs? You didn't even try to > use my example. > > > > > > I did try. I could not understand your example. Let me explain: > > > > > > > > > > > > open2(*READ, *ZIPIT, "/apps/bin/zip > $FORM{'zipfile'} -@ 2>&1"); > > > > > > READ is the input pipe > > > > > > ZIPIT is the output pipe > > > > > > Here, are *READ, and *ZIPIT, already open, using open statements? > > > > > > e.g., > > > open(*READ,"<$ParseFile") || die "$!"; > > > open(*ZIPIT,"| discretise 15 35700 55800 > ${OutFile}") > > > || die "$!"; > > > > > > open2(\*READ,\*ZIPIT); > > > > > > I tried this, and it didn't work. I am confused. Sorry, > but please > > > explain. A working complete example would be great. > > > > > > TIA, > > > > > > -tir > > > > > > > > > > > > > > > > > perldoc IPC::Open2 > > > > > > > > > -----Original Message----- > > > > > From: Tirthankar C. Patnaik [mailto:[EMAIL PROTECTED]] > > > > > Sent: Friday, April 12, 2002 1:52 PM > > > > > To: Nikola Janceski > > > > > Cc: [EMAIL PROTECTED] > > > > > Subject: RE: Input | Program | Output : help > > > > > > > > > > > > > > > > > > > > I'm afraid I couldn't succeed in using the IPC::Open2 module. > > > > > Where am I > > > > > going wrong? > > > > > > > > > > # } > > > > > my($IN,$OUT); > > > > > open(OUT,"| discretise ${delta} ${BOD} ${EOD}") || die > > > > > "Sorry out: $!"; > > > > > > > > > > if($suffix eq ".par"){ > > > > > open(IN,"<$ParseFile") || die "Sorry: $!"; > > > > > open2('IN','OUT'); > > > > > } > > > > > > > > > > Could you please explain the code, in more detail? > > > > > > > > > > TIA, > > > > > -tir > > > > > > > > > > > > > > > } > > > > > > > > > > > > > > > On Fri, 12 Apr 2002, Nikola Janceski wrote: > > > > > > > > > > > You might want to look at IPC::Open2 > > > > > > > > > > > > You can open a system command with an INPUT pipe and > > > OUTPUT pipe. > > > > > > > > > > > > Here is how I used it. > > > > > > > > > > > > open2(*READ, *ZIPIT, "/apps/bin/zip > $FORM{'zipfile'} -@ 2>&1"); > > > > > > READ is the input pipe > > > > > > ZIPIT is the output pipe > > > > > > > > > > > > Perl Gurus, Yeah I should have used the ZIP module.. I am > > > > > too lazy to change > > > > > > it now. > > > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > > > From: Tirthankar C. Patnaik [mailto:[EMAIL PROTECTED]] > > > > > > > Sent: Friday, April 12, 2002 1:04 PM > > > > > > > To: [EMAIL PROTECTED] > > > > > > > Subject: Input | Program | Output : help > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Folks, > > > > > > > Consider this code snippet: > > > > > > > > > > > > > > Here $ParseFile is a plain-text file, which could > be gzipped, > > > > > > > bzipped, or > > > > > > > not compressed at all. I'd like my program to determine > > > > > this, open the > > > > > > > file, and cat it to another program called discretise. > > > > > > > > > > > > > > In the code below, > > > > > > > > > > > > > > my(@PARSELIST) = @ARGV; # This would be the > > > .par files. > > > > > > > my($ParseFile); > > > > > > > for $ParseFile (@PARSELIST){ > > > > > > > chomp $ParseFile; > > > > > > > my($date,$name,$suffix) = > &FileTest($ParseFile); # uses > > > > > > > File::Basename > > > > > > > if($suffix eq ".bz2"){ > > > > > > > system("bunzip2 -c $ParseFile | discretise $delta > > > > > > > $BOD $EOD > ${OUTFILE}"); > > > > > > > }elsif($suffix eq ".gz"){ > > > > > > > system("gunzip -c $ParseFile | discretise > $delta $BOD > > > > > > > $EOD > ${OUTFILE}"); > > > > > > > }elsif($suffix eq ".par"){ > > > > > > > system("cat $ParseFile | discretise > $delta $BOD $EOD > > > > > > > > ${OUTFILE}"); > > > > > > > } > > > > > > > > > > > > > > > > > > > > > As you can see, I've got three system commands to run on > > > > > $ParseFile, > > > > > > > depending on it's extn (.par/.gz/.bz2). > > > > > > > > > > > > > > I don't know how I should ask this, but can I > > > > > > > > > > > > > > 1. open $ParseFile and assign a filehandle to it > > > (IN), say. > > > > > > > 2. open $Outfile and assign a filehandle to it (OUT), > > > > > > > 3. determine the extension of the input file, > > > > > > > > > > > > > > And this is the important part: > > > > > > > 4. Depending on the extension, cat, gunzip > -c, or bunzip > > > > > > > -c the input > > > > > > > file to the output file, using the _filehandle_, > > > > > > > without a system > > > > > > > command. > > > > > > > > > > > > > > Is this possible in Perl, if so how to do it? > And is it > > > > > > > necessary? > > > > > > > > > > > > > > For instance, I could have, > > > > > > > > > > > > > > if($suffix eq ".bz2"){ > > > > > > > open(IN, "bunzip2 -c $ParseFile|") > > > > > > > ||die "Could not open $ParseFile: $!"; > > > > > > > }elsif($suffix eq ".gz"){ > > > > > > > open(IN, "gunzip -c $ParseFile|") > > > > > > > ||die "Could not open $ParseFile: $!"; > > > > > > > }elsif($suffix eq ".par"){ > > > > > > > open(IN, "<$ParseFile") > > > > > > > || die "Could not open $ParseFile: $!"; > > > > > > > } > > > > > > > > > > > > > > And then I open an output file: > > > > > > > > > > > > > > > > > > > > > open(OUT, "| discretise delta BOD EOD > > $OutFile") || die > > > > > > > "Sorry :$!"; > > > > > > > > > > > > > > Problem: How do I channel the input from > $ParseFile to the > > > > > > > OUT filehandle? > > > > > > > > > > > > > > Please explain in --verbose mode! I do not know these > > > things. :) > > > > > > > > > > > > > > -tir > > > > > > > > > > > > > > > > > > > > > TIA, > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > Tirthankar, IGIDR. > > > > > > > +91-22-8400919 x275 (r), x593(o), x542(CFL). > > > > > > > http://www.igidr.ac.in/~tir > > > > > > > > > > > > > > ACKNOWLEDGE, v.t. To confess. Acknowledgement of > > > one another's > > > > > > > faults is the highest duty imposed by our love of truth. > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > > > > -------------------------------------------------------------- > > > > > -------------- > > > > > > -------------------- > > > > > > The views and opinions expressed in this email message are > > > > > the sender's > > > > > > own, and do not necessarily represent the views and > > > > > opinions of Summit > > > > > > Systems Inc. > > > > > > > > > > > > > > > > > > -- > > > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > Tirthankar, IGIDR. > > > > > +91-22-8400919 x275 (r), x593(o), x542(CFL). > > > > > http://www.igidr.ac.in/~tir > > > > > > > > > > SUCCESS, n. The one unpardonable sin against one's > fellows. In > > > > > literature, and particularly in poetry, the elements of > > > success are > > > > > exceedingly simple, and are admirably set forth in the > > > > > following lines > > > > > by the reverend Father Gassalasca Jape, entitled, for some > > > > > mysterious > > > > > reason, "John A. Joyce." > > > > > > > > > > The bard who would prosper must carry a book, > > > > > Do his thinking in prose and wear > > > > > A crimson cravat, a far-away look > > > > > And a head of hexameter hair. > > > > > Be thin in your thought and your body'll be fat; > > > > > If you wear your hair long you needn't your hat. > > > > > > > > > > > > > > > > > > > > -- > > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > > > > -------------------------------------------------------------- > > > -------------- > > > > -------------------- > > > > The views and opinions expressed in this email message are > > > the sender's > > > > own, and do not necessarily represent the views and > > > opinions of Summit > > > > Systems Inc. > > > > > > > > > > > > > > > > > -- > > > Tirthankar, IGIDR. > > > +91-22-8400919 x275 (r), x593(o), x542(CFL). > > > http://www.igidr.ac.in/~tir > > > > > > MONDAY, n. In Christian countries, the day after the > baseball game. > > > > > > > > -------------------------------------------------------------- > -------------- > > -------------------- > > The views and opinions expressed in this email message are > the sender's > > own, and do not necessarily represent the views and > opinions of Summit > > Systems Inc. > > > > > > -- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > -- > Tirthankar, IGIDR. > +91-22-8400919 x275 (r), x593(o), x542(CFL). > http://www.igidr.ac.in/~tir > > ACCORDION, n. An instrument in harmony with the sentiments of an > assassin. > > > -- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > ---------------------------------------------------------------------------- -------------------- The views and opinions expressed in this email message are the sender's own, and do not necessarily represent the views and opinions of Summit Systems Inc. -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]