+ if ($file ne '-e') {
+ exit $class->analyse(
+ file => $file,
+ %args,
+ );
+ }
+
+ require File::Temp;
+ my $tmp = File::Temp->new;
+
+ require Filter::Util::Call;
+ Filter::Util::Call::filter_add(sub {
+ my $status = Filter::Util::Call::filter_read();
+ if ($status > 0) {
+ print $tmp $_;
+ } elsif ($status == 0) {
+ close $tmp;
+ my $code = $class->analyse(
+ file => $tmp->filename,
+ %args,
+ );
+ exit $code;
+ }
+ $status;
+ });