in reply to My Perl Obfuscator
sub ReadTheEntireFile { my $F = defined $_[0] ? $_[0] : ''; $F =~ tr`<>*?\"\|\x00-\x1F``d; # Remove illegal characters. length($F) or return ''; # Missing file name? -e $F and -f $F or return ''; # Make sure file exists. my $SIZE = -s $F; # Get file size. $SIZE or return ''; # Return zero bytes. my $BUF = ''; # Read buffer local *FILE; sysopen(FILE, $F, 0) or return ''; # Open file for read only. my $L = sysread(FILE, $BUF, $SIZE); # Read the entire file close FILE; return $BUF; }
Again, you don't need both file tests to know if a file exists.
$L contains the amount of data returned from the file. You should compare that value to $SIZE to verify that the entire file has been returned.
|
---|