common: enable perl stricture and fix resulting errors
authorMischa POSLAWSKY <perl@shiar.org>
Sat, 6 Jun 2020 02:26:59 +0000 (04:26 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Tue, 20 Oct 2020 20:49:11 +0000 (22:49 +0200)
common.inc.plp
word.plp

index 77880495c2be77883e45d013279c0aa296ad9a9e..d0e1c328ec862f2221443b2517804927f7592a84 100644 (file)
@@ -1,5 +1,6 @@
 <:
 use 5.014;
+use strict;
 use utf8;
 use warnings;
 no  warnings 'qw';  # you know what you doing
@@ -10,11 +11,13 @@ use File::stat 'stat';
 use HTTP::Date;
 use Encode qw( decode_utf8 );
 
+our $Dev;
+
 sub Alert {
        my ($html, $debug) = @_;
        ref $html eq 'ARRAY' or $html = [$html];
        my ($title, @lines) = @{$html};
-       $body = "<h2>$title</h2>";
+       my $body = "<h2>$title</h2>";
        $body .= "\n<p>$_</p>" for @lines;
        $body .= "\n<pre>$debug</pre>" if $Dev and $debug;
        say "<div class=error>$body</div>\n";
@@ -38,21 +41,10 @@ BEGIN {
        require Time::HiRes;
        our $Time = [Time::HiRes::gettimeofday()];
 
-       $PLP::ERROR = sub {
-               my ($text, $html) = @_;
-               warn $text;
-               unless ($PLP::sentheaders and $PLP::sentheaders->[0] !~ m{/PLP\.pm$}) {
-                       Html({nocache => 1});
-                       say '<h1>Page unavailable</h1>';
-               }
-               Alert("<strong>Fatal error</strong>: $html.");
-       };
-
        push @INC, '.';
 
        # user request
        our $Dev = $ENV{HTTP_HOST} =~ /\bdev\./;
-       our ($file) = $ENV{SCRIPT_FILENAME} =~ m{ ([^/]+) \.plp$ }x;
 }
 
 our $Request = decode_utf8($ENV{PATH_INFO} =~ s{^/}{}r);
@@ -146,6 +138,8 @@ sub Html {
                '<script type="text/javascript" src="/keys.js?1.6" async></script>',
        ) if $meta->{keys};
 
+       my ($file) = $ENV{SCRIPT_FILENAME} =~ m{ ([^/]+) \.plp$ }x;
+
        PLP_START {
                # leading output
                say '<!DOCTYPE html>';
@@ -156,9 +150,9 @@ sub Html {
                        for $header{content_type};
                say sprintf '<title>%s</title>', $meta->{title};
                say sprintf '<meta name="description" content="%s">', EscapeHTML($_)
-                       for join(' ', @{ $meta->{description} }) || ();
+                       for join(' ', @{ $meta->{description} // [] }) || ();
                say sprintf '<meta name="keywords" content="%s">', EscapeHTML($_)
-                       for join(', ', @{ $meta->{keywords} }) || ();
+                       for join(', ', @{ $meta->{keywords} // [] }) || ();
                say '<meta name="viewport" content="width=device-width, initial-scale=1">';
                say '<link rel="icon" type="image/png" href="/clip.png">';
                say for map { @{$_} } $meta->{raw} || ();
@@ -192,6 +186,7 @@ sub Html {
         title="Licensed under the GNU Affero General Public License, version 3"
         rel="license">AGPLv3</a>
 EOT
+               our $Time;
                say sprintf '• %.3fs', Time::HiRes::tv_interval($Time) if $Dev and $Time;
                say '</p>';
                say '';
@@ -199,6 +194,18 @@ EOT
        };
 }
 
+BEGIN {
+       $PLP::ERROR = sub {
+               my ($text, $html) = @_;
+               warn $text;
+               unless ($PLP::sentheaders and $PLP::sentheaders->[0] !~ m{/PLP\.pm$}) {
+                       Html({nocache => 1});
+                       say '<h1>Page unavailable</h1>';
+               }
+               Alert("<strong>Fatal error</strong>: $html.");
+       };
+}
+
 sub showlink {
        my ($title, $href, $selected) = @_;
        return sprintf(
index 508fd06731147627776c01a344c01f69f296ea45..45525720399ab8ded056e0152050c5ea864e76f9 100644 (file)
--- a/word.plp
+++ b/word.plp
@@ -90,7 +90,7 @@ sub showimg {
        $name = "<q>$name</q>" if $name =~ s/\?$//;
        $name = "<figcaption>$name</figcaption>";
 
-       if ($imgname and -e ($img = "data/word/en/$imgname.jpg")) {
+       if ($imgname and -e (my $img = "data/word/en/$imgname.jpg")) {
                $name .= sprintf '<img src="/%s" alt="%s" />', $img, $imgname;
        }
        return sprintf '<figure%s>%s</figure>', $hidden && !exists $get{v} && ' hidden', $name;