I'm not as familar with the "$/ = chr(0);" line. I know it changes the line termintion which I'm assuming is necessary to properly take in the pipe from find. (I haven't had a chance to test difference to see what happens.)
I did take a quick look in the documentation (
http://search.cpan.org/~rgarcia/perl-5.9.4/pod/perlvar.pod) and it seems like it would be a little safer make the change local like:
#!/usr/bin/perl -w
use strict;
my @dirlist = qw(/dir/to/parse);
open( FIND, '-|', 'find', @dirlist, qw/-print0/ ) or die "find: $!";
{
local $/ = chr(0);
while (<FIND>) {
chomp;
print "Processing: $_\n";
}
}
From what I gather form the docs, this will make sure that the $/ change doesn't affect anything else and cause unexpected behavior. PLEASE NOTE, I have not had a chance to test that code, so it may not work in part or whole.