Use single perl instance multiple times

M

mseele

Hi,

i have to "parse/compile" lot's of perl files (as fast as possible)
and work with the output (...Can't locate XYZ.pm in @INC (@INC
contains: XYZ) at - line 7. BEGIN failed--compilation aborted at -
line 7....).

For now i iterate over the files, create a new perl process for every
file (perl -c -W -Mstrict -I XYZ) and write the bytes of the current
file into the process.
But it is very expensive to start a new perl process for every file to
parse.

Is it possible to use only one perl process for parsing multiple perl
files?
I mean: open only one perl process, write in the bytes of a file, read
the output, "reset" the perl process (change @inc...), write in the
bytes of the next file, read the output, "reset" the perl
process...and so on till all files will be parsed/compiled. Then exit
the perl process. Is this possible?
What do i have to "reset/new initalize" after one file is processed?
Only the @INC or more?
How can i tell the perl process that one file is fully written to the
input stream and the parser/compiler should write the output to the
output stream?

Thanks,
Michael
 
D

Dr.Ruud

mseele schreef:
Is it possible to use only one perl process for parsing multiple
perl files?

Not without side effects, but maybe good enough:

package JEQVCHSAFCUDFNDGSADKFFH;

for $file (@files) {
eval {
require $file;
1;
}
or do {
my $err = $@;
printf STDERR "%s\n", $err;
};
}

Next progress would be forking suicidals, I suppose.

Alternative approaches:
for f in *.pm ; do perl -Mstrict -wc $f ; done 2>&1 |grep -vP "\.pm
syntax OK$" |less
for f in *.pm ; do perl -Mstrict -wc $f 2>&1 |grep -vP "\.pm syntax
OK$" ; done |less
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,994
Messages
2,570,223
Members
46,810
Latest member
Kassie0918

Latest Threads

Top