[Bioperl-l] how to use pipe in perl script?

Heikki Lehvaslaiho heikki at ebi.ac.uk
Tue Apr 20 06:42:08 EDT 2004


Zhou,

My guess is that Andreas answered the right question but did not give enough 
details.

I remember being confused on how to read from STDIN in perl. Here is an 
example oneliner that demonstates it. It helps if you remember that structure 
while(<>){...} can be invoked by using -n to perl:

perl -le 'for (1..10) {print $_}' | perl -nle 'print "item $_"'

	-Heikki

On Monday 19 Apr 2004 11:54, Andreas Kahari wrote:
> Another solution for another interpetation of the problem:
>
> If you want to do something like
>
>     script1.pl | script2.pl
>
> Then script1.pl should write it's results to standard output
> (<STDOUT>, the default for e.g. print()), and script2.pl should
> read its input from standard input (<STDIN>).  And that's all
> there is to it.
>
>
> Andreas
>
> On Mon, Apr 19, 2004 at 12:30:48PM +0100, Paulo Almeida wrote:
> > You can use the 'system' command to do something like this:
> >
> > system("program1 -infile filename | program2");
> >
> > If that doesn't work for some reason, you could write the output of the
> > first program to a file, and then open it with the second program.
> >
> > system("program1 -infile filename > output");
> > system ("program2 < output");
> >
> > I hope that's what you wanted, I'm not sure I understood...
> > -Paulo Almeida
> >
> > Zhou Yu wrote:
> > >Hi,
> > >
> > >How to use pipe in a script, like redirecting the output of a program
> > >to another program in a script?
> > >
> > >For example, I use this command "program1 -infile filename | program2"
> > >in the command line, and how can I to do this in a script?
> > >
> > >Thanks!
> > >*
> > >Yu Zhou*
> >
> > _______________________________________________
> > Bioperl-l mailing list
> > Bioperl-l at portal.open-bio.org
> > http://portal.open-bio.org/mailman/listinfo/bioperl-l

-- 
______ _/      _/_____________________________________________________
      _/      _/                      http://www.ebi.ac.uk/mutations/
     _/  _/  _/  Heikki Lehvaslaiho    heikki_at_ebi ac uk
    _/_/_/_/_/  EMBL Outstation, European Bioinformatics Institute
   _/  _/  _/  Wellcome Trust Genome Campus, Hinxton
  _/  _/  _/  Cambs. CB10 1SD, United Kingdom
     _/      Phone: +44 (0)1223 494 644   FAX: +44 (0)1223 494 468
___ _/_/_/_/_/________________________________________________________


More information about the Bioperl-l mailing list