Before:
  Save g:ale_perl_perl_executable
  Save g:ale_perl_perl_options

  unlet! g:ale_perl_perl_executable
  unlet! g:ale_perl_perl_options

  runtime ale_linters/perl/perl.vim

After:
  Restore

  unlet! b:ale_perl_perl_executable
  unlet! b:ale_perl_perl_options

  call ale#linter#Reset()

Execute(The default Perl command callback should be correct):
  AssertEqual
  \ 'perl',
  \ ale_linters#perl#perl#GetExecutable(bufnr(''))

  AssertEqual
  \ ale#Escape('perl') . ' -c -Mwarnings -Ilib %t',
  \ ale_linters#perl#perl#GetCommand(bufnr(''))

Execute(Overriding the executable and command should work):
  let b:ale_perl_perl_executable = 'foobar'
  let b:ale_perl_perl_options = '-w'

  AssertEqual
  \ 'foobar',
  \ ale_linters#perl#perl#GetExecutable(bufnr(''))

  AssertEqual
  \ ale#Escape('foobar') . ' -w %t',
  \ ale_linters#perl#perl#GetCommand(bufnr(''))