소스 검색

safe slurp

George S. Baugh 5 년 전
부모
커밋
a58c829000
1개의 변경된 파일5개의 추가작업 그리고 1개의 파일을 삭제
  1. 5 1
      lib/Trog/Data/FlatFile.pm

+ 5 - 1
lib/Trog/Data/FlatFile.pm

@@ -40,7 +40,11 @@ sub read ($self, $query={}) {
     my @items;
     foreach my $item (@index) {
         next unless -f $item;
-        my $slurped = File::Slurper::read_text($item);
+        my $slurped = eval { File::Slurper::read_text($item) };
+        if (!$slurped) {
+            print "Failed to Read $item:\n$@\n";
+            next;
+        }
         my $parsed  = $parser->decode($slurped);
 
         #XXX this imposes an inefficiency in itself, get() will filter uselessly again here