Compile time warnings are issued by perl 5.18 and greater over use of experimental keywords given and when as behaviour may change in next release. Replace usage of these constructs with core syntax
Created attachment 23930 [details] [review] Proposed patch With patch applied test suite no longer reports 'experimental' warnings from this module
Created attachment 25356 [details] [review] Bug 11479 Remove experimental given/when keywords Replace constructs using given and when by if/else feature now generates compilation warnings in 5.18 and is liable to change behaviour replaced the construcrs with if/else reformatted the if branching using perltidy to remove the now redundant indent Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
This one is not a given/when, but a for/when. Which is not experimental. To me this patch is not relevant.
(In reply to Jonathan Druart from comment #3) > This one is not a given/when, but a for/when. Which is not experimental. > To me this patch is not relevant. ~/kohaclone$ perl -wc C4/MarcModificationTemplates.pm when is experimental at /home/cc/kohaclone/Koha/SimpleMARC.pm line 93. when is experimental at /home/cc/kohaclone/Koha/SimpleMARC.pm line 96. when is experimental at /home/cc/kohaclone/Koha/SimpleMARC.pm line 99. when is experimental at C4/MarcModificationTemplates.pm line 552. when is experimental at C4/MarcModificationTemplates.pm line 558. when is experimental at C4/MarcModificationTemplates.pm line 564. when is experimental at C4/MarcModificationTemplates.pm line 570. when is experimental at C4/MarcModificationTemplates.pm line 581. when is experimental at C4/MarcModificationTemplates.pm line 584. when is experimental at C4/MarcModificationTemplates.pm line 587. when is experimental at C4/MarcModificationTemplates.pm line 590. C4/MarcModificationTemplates.pm syntax OK And here is the notification from the 5.18 delta The smartmatch family of features are now experimental Smart match, added in v5.10.0 and significantly revised in v5.10.1, has been a regular point of complaint. Although there are a number of ways in which it is useful, it has also proven problematic and confusing for both users and implementors of Perl. There have been a number of proposals on how to best address the problem. It is clear that smartmatch is almost certainly either going to change or go away in the future. Relying on its current behavior is not recommended. Warnings will now be issued when the parser sees "~~", "given", or "when". To disable these warnings, you can add this line to the appropriate scope: no if $] >= 5.018, warnings => "experimental::smartmatch"; Consider, though, replacing the use of these features, as they may change behavior again before becoming stable. for/when relies on smartmatch the patch is relevant
Created attachment 25497 [details] [review] Bug 11479 Remove experimental given/when keywords Replace constructs using given and when by if/else feature now generates compilation warnings in 5.18 and is liable to change behaviour replaced the construcrs with if/else reformatted the if branching using perltidy to remove the now redundant indent Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz> Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Pushed to master. Thanks, Colin!
Pushed to 3.14.x, will be in 3.14.07