use multi_param() if available to avoid the new warning
authorTony Cook <tony@develop-help.com>
Sat, 19 Sep 2015 08:34:09 +0000 (18:34 +1000)
committerTony Cook <tony@develop-help.com>
Sat, 19 Sep 2015 08:34:09 +0000 (18:34 +1000)
site/cgi-bin/modules/BSE/CGI.pm

index e4327f8..ffc01ab 100644 (file)
@@ -2,15 +2,17 @@ package BSE::CGI;
 use strict;
 use Encode;
 
-our $VERSION = "1.001";
+our $VERSION = "1.002";
 
 sub new {
   my ($class, $q, $charset) = @_;
 
+  my $param = $q->can("multi_param") ? "multi_param" : "param";
   my $self = bless
     {
      cgi => $q,
      charset => $charset,
+     param => $param,
     }, $class;
 
   return $self;
@@ -19,7 +21,8 @@ sub new {
 sub param {
   my ($self, @args) = @_;
 
-  my @result = $self->{cgi}->param(@args)
+  my $param = $self->{param};
+  my @result = $self->{cgi}->$param(@args)
     or return;
   for my $value (@result) {
     $value = decode($self->{charset}, $value)
@@ -29,6 +32,20 @@ sub param {
   return wantarray && @result > 1 ? @result : $result[0];
 }
 
+sub multi_param {
+  my ($self, @args) = @_;
+
+  my $param = $self->{param};
+  my @result = $self->{cgi}->$param(@args)
+    or return;
+  for my $value (@result) {
+    $value = decode($self->{charset}, $value)
+      unless ref $value;
+  }
+
+  return wantarray ? @result : $result[0];
+}
+
 sub upload {
   my ($self, @args) = @_;