use experimental 'smartmatch' to avoid warnings from perl 5.18