# supposing that @ARGV contains file name(s) to be filtered and processed: open( INP, "my_filter_script.pl @ARGV |" ) or die "can't filter: $!"; while () { # prefixes and other source code filtering are already done # ... }