Perl Warning „Smartmatch is experimental“
Vor Kurzem musste ich feststellen, dass verschiedene meiner Perl-Scripte nicht mehr korrekt arbeiten und Fehlermeldungen ähnlich „Smartmatch is experimental“ zurückgeben. Grund hierfür ist Perl >= 5.18, wo das Feature Smartmatching als experimentell eingestuft wurde (Smartmatch war wohl zu smart ).
- Beispiel Smartmatching:
m/(error|timeout)/i ~~ @a_record
Es existieren nun verschiedene Lösungen, um das Problem zu umgehen:
- use warnings; (ja, dies sollte normalerweise immer genutzt werden) weglassen bzw. durch no warnings; ersetzen => sehr schlechte Idee
Nutzung von no warnings ‚experimental::smartmatch‘; => funktioniert allerdings nur ab Perl 5.18
- CPAN Modul experimental nutzen, d.h. Modul installieren und im Source entsprechend mit use experimental ’smartmatch‘; einbinden => meines Erachtens die „sauberste“ Lösung