- name: Init perlbrew
  become_user: '{{ user.key }}'
  ansible.builtin.command:
    argv:
      - perlbrew
      - init
    creates: '/home/{{ user.key }}/perl5/perlbrew/etc/bashrc'
- name: Check if perl {{ perlbrew_perl_version }} is installed
  become_user: '{{ user.key }}'
  ansible.builtin.shell:
    cmd: |
      source ~/perl5/perlbrew/etc/bashrc

      if [[ "$(perlbrew list)" == *perl-{{ perlbrew_perl_version }}* ]]; then
        echo 'true'
      fi
  register: perlbrew_perl_version_check
  changed_when: false
- name: 'Install perl {{ perlbrew_perl_version }}'
  become_user: '{{ user.key }}'
  ansible.builtin.shell:
    cmd: |
      source ~/perl5/perlbrew/etc/bashrc

      perlbrew install perl-{{ perlbrew_perl_version }} -f -j 4 --thread --multi --switch
  when: not perlbrew_perl_version_check.stdout|bool
- name: Install cpm
  become_user: '{{ user.key }}'
  ansible.builtin.shell:
    cmd: |
      source ~/perl5/perlbrew/etc/bashrc

      perlbrew install-cpm
    creates: '/home/{{ user.key }}/perl5/perlbrew/bin/cpm'
- name: 'Install {{ item.package }}'
  become_user: '{{ user.key }}'
  ansible.builtin.shell:
    cmd: |
      source ~/perl5/perlbrew/etc/bashrc

      cpanm {{ item.package }} {{ '--force' if item.force == 'true' else '' }}
  loop: []
