Deals Magazin Perl Warning "Smartmatch is experimental"

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 :-D ).

  • 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

Kommentar schreiben

Optional, wird nicht veröffentlicht.
Bild entfernen Bild zum Kommentar hinzufügen (JPG, PNG)