aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/autoload/provider/perl.vim16
1 files changed, 6 insertions, 10 deletions
diff --git a/runtime/autoload/provider/perl.vim b/runtime/autoload/provider/perl.vim
index 4546a85100..36ca2bbf14 100644
--- a/runtime/autoload/provider/perl.vim
+++ b/runtime/autoload/provider/perl.vim
@@ -6,18 +6,14 @@ let s:loaded_perl_provider = 1
function! provider#perl#Detect() abort
" use g:perl_host_prof if set or check if perl is on the path
- let prog = get(g:, 'perl_host_prog', executable('perl') ? 'perl' : '')
-
- " if perl is available, make sure the required module is available
- if prog != ''
- let job_id = jobstart(prog.' -MNeovim::Ext -e "exit 0"', {'stdout_buffered': v:true})
- let result = jobwait([job_id])
- if result[0] != 0
- let prog = ''
- endif
+ let prog = exepath(get(g:, 'perl_host_prog', 'perl'))
+ if empty(prog)
+ return ''
endif
- return prog
+ " if perl is available, make sure the required module is available
+ call system([prog, '-W', '-MNeovim::Ext', '-e', ''])
+ return v:shell_error ? '' : prog
endfunction
function! provider#perl#Prog() abort