in reply to using data from an os program

toolic's advice is good. If your program produces lots of data, or takes a long time to complete, but you can process its output line by line before it finishes, you can use open:
open my $PIPE, '-|', 'my-first-program', 'arg1', 'arg2' or die $!; while (my $line = <$PIPE>) { chomp; # ... do something with the line } close $PIPE or die $!;

You can output the processed data to the second program in a similar way:

open my $PIPE_OUT, '|-', 'my-second-program', @args or die $!; # ... print {$PIPE_OUT} $data;
($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,