magazin-tipps-tricks
+3

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
0 Antworten

Hinterlassen Sie einen Kommentar

Wollen Sie an der Diskussion teilnehmen?
Feel free to contribute!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *