You said in the original post you wanted high performance. Try to replace this:
my @PRC_PRIV = <FILE>;
my @PRC_PRIV_ONLY = grep /Run as/ .. /^ /, @PRC_PRIV;
my @PRC_PRIV_ONLY = grep /Run as/ .. /^ /, <FILE>;
And measure if you get any performance improvement.
Another point is that you may want to include use strict; and use warnings; near the top of your program and declare your variables with the my operator. This is a recommended good practice which will save you a lot of debugging time.