Hello community, here is the log from the commit of package perl-CGI for openSUSE:Factory checked in at 2017-04-11 12:42:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-CGI (Old) and /work/SRC/openSUSE:Factory/.perl-CGI.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-CGI" Tue Apr 11 12:42:51 2017 rev:7 rq:486309 version:4.36 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-CGI/perl-CGI.changes 2016-10-18 10:09:34.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.perl-CGI.new/perl-CGI.changes 2017-04-11 12:42:56.877374027 +0200 @@ -1,0 +2,16 @@ +Fri Apr 7 05:08:35 UTC 2017 - [email protected] + +- updated to 4.36 + see /usr/share/doc/packages/perl-CGI/Changes + + 4.36 2017-03-29 + + [ ENHANCEMENT ] + - Support PATCH HTTP method (thanks to GovtGeek for the... patch) + - pass through max_age and samesite to CGI::Cookie->new in the call + in CGI->cookie (GH #220) + + [ FIX ] + - skip t/command_line.t on windows as it doesn't work + +------------------------------------------------------------------- Old: ---- CGI-4.35.tar.gz New: ---- CGI-4.36.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-CGI.spec ++++++ --- /var/tmp/diff_new_pack.Bi4Rse/_old 2017-04-11 12:42:58.541138942 +0200 +++ /var/tmp/diff_new_pack.Bi4Rse/_new 2017-04-11 12:42:58.549137812 +0200 @@ -1,7 +1,7 @@ # # spec file for package perl-CGI # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,14 +17,14 @@ Name: perl-CGI -Version: 4.35 +Version: 4.36 Release: 0 %define cpan_name CGI Summary: Handle Common Gateway Interface requests and responses License: Artistic-1.0 or GPL-1.0+ Group: Development/Libraries/Perl Url: http://search.cpan.org/dist/CGI/ -Source0: http://www.cpan.org/authors/id/L/LE/LEEJO/%{cpan_name}-%{version}.tar.gz +Source0: https://cpan.metacpan.org/authors/id/L/LE/LEEJO/%{cpan_name}-%{version}.tar.gz Source1: cpanspec.yml BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -34,6 +34,7 @@ BuildRequires: perl(HTML::Entities) >= 3.69 BuildRequires: perl(Test::Deep) >= 0.11 BuildRequires: perl(Test::More) >= 0.98 +BuildRequires: perl(Test::NoWarnings) BuildRequires: perl(Test::Warn) >= 0.3 BuildRequires: perl(parent) >= 0.225 Requires: perl(File::Temp) >= 0.17 @@ -73,6 +74,7 @@ %files -f %{name}.files %defattr(-,root,root,755) -%doc Changes examples LICENSE README.md +%doc Changes examples README.md +%license LICENSE %changelog ++++++ CGI-4.35.tar.gz -> CGI-4.36.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CGI-4.35/Changes new/CGI-4.36/Changes --- old/CGI-4.35/Changes 2016-10-13 15:51:06.000000000 +0200 +++ new/CGI-4.36/Changes 2017-04-06 16:37:35.000000000 +0200 @@ -1,3 +1,13 @@ +4.36 2017-03-29 + + [ ENHANCEMENT ] + - Support PATCH HTTP method (thanks to GovtGeek for the... patch) + - pass through max_age and samesite to CGI::Cookie->new in the call + in CGI->cookie (GH #220) + + [ FIX ] + - skip t/command_line.t on windows as it doesn't work + 4.35 2016-10-13 [ FIX ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CGI-4.35/MANIFEST new/CGI-4.36/MANIFEST --- old/CGI-4.35/MANIFEST 2016-10-13 15:55:39.000000000 +0200 +++ new/CGI-4.36/MANIFEST 2017-04-06 16:38:09.000000000 +0200 @@ -30,6 +30,7 @@ t/changes.t t/charset.t t/checkbox_group.t +t/command_line.t t/compiles_pod.t t/cookie.t t/delete.t diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CGI-4.35/META.json new/CGI-4.36/META.json --- old/CGI-4.35/META.json 2016-10-13 15:55:38.000000000 +0200 +++ new/CGI-4.36/META.json 2017-04-06 16:38:09.000000000 +0200 @@ -59,6 +59,7 @@ "POSIX" : "0", "Test::Deep" : "0.11", "Test::More" : "0.98", + "Test::NoWarnings" : "0", "Test::Warn" : "0.3" } } @@ -78,6 +79,6 @@ "web" : "https://github.com/leejo/CGI.pm" } }, - "version" : "4.35", + "version" : "4.36", "x_serialization_backend" : "JSON::PP version 2.27300" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CGI-4.35/META.yml new/CGI-4.36/META.yml --- old/CGI-4.35/META.yml 2016-10-13 15:55:38.000000000 +0200 +++ new/CGI-4.36/META.yml 2017-04-06 16:38:09.000000000 +0200 @@ -11,6 +11,7 @@ POSIX: '0' Test::Deep: '0.11' Test::More: '0.98' + Test::NoWarnings: '0' Test::Warn: '0.3' configure_requires: ExtUtils::MakeMaker: '0' @@ -47,5 +48,5 @@ homepage: https://metacpan.org/module/CGI license: http://dev.perl.org/licenses/ repository: https://github.com/leejo/CGI.pm -version: '4.35' +version: '4.36' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CGI-4.35/Makefile.PL new/CGI-4.36/Makefile.PL --- old/CGI-4.35/Makefile.PL 2016-10-13 15:50:03.000000000 +0200 +++ new/CGI-4.36/Makefile.PL 2017-03-29 10:36:35.000000000 +0200 @@ -37,6 +37,7 @@ 'Test::Deep' => 0.11, 'Test::More' => 0.98, 'Test::Warn' => 0.30, + 'Test::NoWarnings' => 0, }, test => { TESTS => 't/*.t t/headers/*.t' }, linkext => { LINKTYPE => '' }, # no link needed diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CGI-4.35/lib/CGI/Carp.pm new/CGI-4.36/lib/CGI/Carp.pm --- old/CGI-4.35/lib/CGI/Carp.pm 2016-10-13 15:51:22.000000000 +0200 +++ new/CGI-4.36/lib/CGI/Carp.pm 2017-04-06 16:36:29.000000000 +0200 @@ -327,7 +327,7 @@ $main::SIG{__WARN__}=\&CGI::Carp::warn; -$CGI::Carp::VERSION = '4.35'; +$CGI::Carp::VERSION = '4.36'; $CGI::Carp::CUSTOM_MSG = undef; $CGI::Carp::DIE_HANDLER = undef; $CGI::Carp::TO_BROWSER = 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CGI-4.35/lib/CGI/Cookie.pm new/CGI-4.36/lib/CGI/Cookie.pm --- old/CGI-4.35/lib/CGI/Cookie.pm 2016-10-13 15:51:24.000000000 +0200 +++ new/CGI-4.36/lib/CGI/Cookie.pm 2017-04-06 16:36:31.000000000 +0200 @@ -5,7 +5,7 @@ use if $] >= 5.019, 'deprecate'; -our $VERSION='4.35'; +our $VERSION='4.36'; use CGI::Util qw(rearrange unescape escape); use overload '""' => \&as_string, 'cmp' => \&compare, 'fallback' => 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CGI-4.35/lib/CGI/File/Temp.pm new/CGI-4.36/lib/CGI/File/Temp.pm --- old/CGI-4.35/lib/CGI/File/Temp.pm 2016-10-13 15:51:26.000000000 +0200 +++ new/CGI-4.36/lib/CGI/File/Temp.pm 2017-04-06 16:36:33.000000000 +0200 @@ -3,7 +3,7 @@ # you use it directly and your code breaks horribly. package CGI::File::Temp; -$CGI::File::Temp::VERSION = '4.35'; +$CGI::File::Temp::VERSION = '4.36'; use parent File::Temp; use parent Fh; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CGI-4.35/lib/CGI/Pretty.pm new/CGI-4.36/lib/CGI/Pretty.pm --- old/CGI-4.35/lib/CGI/Pretty.pm 2016-10-13 15:51:28.000000000 +0200 +++ new/CGI-4.36/lib/CGI/Pretty.pm 2017-04-06 16:36:35.000000000 +0200 @@ -6,7 +6,7 @@ use if $] >= 5.019, 'deprecate'; use CGI (); -$CGI::Pretty::VERSION = '4.35'; +$CGI::Pretty::VERSION = '4.36'; $CGI::DefaultClass = __PACKAGE__; @CGI::Pretty::ISA = qw( CGI ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CGI-4.35/lib/CGI/Push.pm new/CGI-4.36/lib/CGI/Push.pm --- old/CGI-4.35/lib/CGI/Push.pm 2016-10-13 15:51:29.000000000 +0200 +++ new/CGI-4.36/lib/CGI/Push.pm 2017-04-06 16:36:37.000000000 +0200 @@ -6,7 +6,7 @@ use warnings; #/; -$CGI::Push::VERSION='4.35'; +$CGI::Push::VERSION='4.36'; use CGI; use CGI::Util 'rearrange'; @ISA = ('CGI'); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CGI-4.35/lib/CGI/Util.pm new/CGI-4.36/lib/CGI/Util.pm --- old/CGI-4.35/lib/CGI/Util.pm 2016-10-13 15:51:31.000000000 +0200 +++ new/CGI-4.36/lib/CGI/Util.pm 2017-04-06 16:36:38.000000000 +0200 @@ -6,7 +6,7 @@ our @EXPORT_OK = qw(rearrange rearrange_header make_attributes unescape escape expires ebcdic2ascii ascii2ebcdic); -our $VERSION = '4.35'; +our $VERSION = '4.36'; our $_EBCDIC = "\t" ne "\011"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CGI-4.35/lib/CGI.pm new/CGI-4.36/lib/CGI.pm --- old/CGI-4.35/lib/CGI.pm 2016-10-13 15:51:38.000000000 +0200 +++ new/CGI-4.36/lib/CGI.pm 2017-04-06 16:36:41.000000000 +0200 @@ -8,7 +8,7 @@ use warnings; #/; -$CGI::VERSION='4.35'; +$CGI::VERSION='4.36'; use CGI::Util qw(rearrange rearrange_header make_attributes unescape escape expires ebcdic2ascii ascii2ebcdic); @@ -442,7 +442,7 @@ my @result = @{$self->{param}{$name}}; - if ($PARAM_UTF8 && $name ne 'PUTDATA' && $name ne 'POSTDATA') { + if ($PARAM_UTF8 && $name ne 'PUTDATA' && $name ne 'POSTDATA' && $name ne 'PATCHDATA') { eval "require Encode; 1;" unless Encode->can('decode'); # bring in these functions @result = map {ref $_ ? $_ : $self->_decode_utf8($_) } @result; } @@ -638,9 +638,9 @@ last METHOD; } - if ($meth eq 'POST' || $meth eq 'PUT') { + if ($meth eq 'POST' || $meth eq 'PUT' || $meth eq 'PATCH') { if ( $content_length > 0 ) { - if ( ( $PUTDATA_UPLOAD || $self->{'.upload_hook'} ) && !$is_xforms && ($meth eq 'POST' || $meth eq 'PUT') + if ( ( $PUTDATA_UPLOAD || $self->{'.upload_hook'} ) && !$is_xforms && ($meth eq 'POST' || $meth eq 'PUT' || $meth eq 'PATCH') && defined($ENV{'CONTENT_TYPE'}) && $ENV{'CONTENT_TYPE'} !~ m|^application/x-www-form-urlencoded| && $ENV{'CONTENT_TYPE'} !~ m|^multipart/form-data| ){ @@ -676,7 +676,7 @@ } # YL: Begin Change for XML handler 10/19/2001 - if (!$is_xforms && ($meth eq 'POST' || $meth eq 'PUT') + if (!$is_xforms && ($meth eq 'POST' || $meth eq 'PUT' || $meth eq 'PATCH') && defined($ENV{'CONTENT_TYPE'}) && $ENV{'CONTENT_TYPE'} !~ m|^application/x-www-form-urlencoded| && $ENV{'CONTENT_TYPE'} !~ m|^multipart/form-data| ) { @@ -941,7 +941,7 @@ $DEBUG=0, next if /^[:-]no_?[Dd]ebug$/; $DEBUG=2, next if /^[:-][Dd]ebug$/; $USE_PARAM_SEMICOLONS++, next if /^[:-]newstyle_urls$/; - $PUTDATA_UPLOAD++, next if /^[:-](?:putdata_upload|postdata_upload)$/; + $PUTDATA_UPLOAD++, next if /^[:-](?:putdata_upload|postdata_upload|patchdata_upload)$/; $PARAM_UTF8++, next if /^[:-]utf8$/; $XHTML++, next if /^[:-]xhtml$/; $XHTML=0, next if /^[:-]no_?xhtml$/; @@ -1227,6 +1227,10 @@ return request_method() eq 'GET'; } +sub MethPatch { + return request_method() eq 'PATCH'; +} + sub MethPost { return request_method() eq 'POST'; } @@ -2751,8 +2755,8 @@ #### sub cookie { my($self,@p) = self_or_default(@_); - my($name,$value,$path,$domain,$secure,$expires,$httponly) = - rearrange([NAME,[VALUE,VALUES],PATH,DOMAIN,SECURE,EXPIRES,HTTPONLY],@p); + my($name,$value,$path,$domain,$secure,$expires,$httponly,$max_age,$samesite) = + rearrange([NAME,[VALUE,VALUES],PATH,DOMAIN,SECURE,EXPIRES,HTTPONLY,'MAX-AGE',SAMESITE],@p); require CGI::Cookie; @@ -2780,6 +2784,8 @@ push(@param,'-expires'=>$expires) if $expires; push(@param,'-secure'=>$secure) if $secure; push(@param,'-httponly'=>$httponly) if $httponly; + push(@param,'-max_age'=>$max_age) if $max_age; + push(@param,'-samesite'=>$samesite) if $samesite; return CGI::Cookie->new(@param); } @@ -2885,7 +2891,7 @@ } #### Method: request_method -# Returns 'POST', 'GET', 'PUT' or 'HEAD' +# Returns 'POST', 'GET', 'PUT', 'PATCH' or 'HEAD' #### sub request_method { return (defined $ENV{'REQUEST_METHOD'}) ? $ENV{'REQUEST_METHOD'} : undef; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CGI-4.35/lib/CGI.pod new/CGI-4.36/lib/CGI.pod --- old/CGI-4.35/lib/CGI.pod 2016-10-13 15:50:03.000000000 +0200 +++ new/CGI-4.36/lib/CGI.pod 2017-03-29 10:46:20.000000000 +0200 @@ -435,14 +435,16 @@ my $data = $q->param('POSTDATA'); -Likewise if PUTed data can be retrieved with code like this: +Likewise if PUTed and PATCHed data can be retrieved with code like this: my $data = $q->param('PUTDATA'); + my $data = $q->param('PATCHDATA'); + (If you don't know what the preceding means, worry not. It only affects people trying to use CGI for XML processing and other specialized tasks) -PUTDATA/POSTDATA are also available via +PUTDATA/POSTDATA/PATCHDATA are also available via L<upload_hook|/Progress bars for file uploads and avoiding temp files>, and as L<file uploads|/Processing a file upload field> via L</-putdata_upload> option. @@ -651,13 +653,13 @@ my $param = $cgi->param('foo'); $param = decode( 'UTF-8',$param ); -=item -putdata_upload +=item -putdata_upload / -postdata_upload / -patchdata_upload -Makes C<<< $cgi->param('PUTDATA'); >>> and C<<< $cgi->param('POSTDATA'); >>> -act like file uploads named PUTDATA and POSTDATA. See -L</Handling non-urlencoded arguments> and L</Processing a file upload field> -PUTDATA/POSTDATA are also available via -L<upload_hook|/Progress bars for file uploads and avoiding temp files>. +Makes C<<< $cgi->param('PUTDATA'); >>>, C<<< $cgi->param('PATCHDATA'); >>>, +and C<<< $cgi->param('POSTDATA'); >>> act like file uploads named PUTDATA, +PATCHDATA, and POSTDATA. See L</Handling non-urlencoded arguments> and +L</Processing a file upload field> PUTDATA/POSTDATA/PATCHDATA are also available +via L<upload_hook|/Progress bars for file uploads and avoiding temp files>. =item -nph @@ -975,6 +977,9 @@ string with a form submitted with the GET method, the results will not be what you expect. +If running from the command line, C<url_param> will not pick up any +parameters given on the command line. + =head2 Processing a file upload field =head3 Basics @@ -1484,7 +1489,7 @@ =item B<request_method()> Returns the method used to access your script, usually one of 'POST', 'GET' -or 'HEAD'. +or 'HEAD'. If running from the command line it will be undef. =item B<content_type()> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CGI-4.35/lib/Fh.pm new/CGI-4.36/lib/Fh.pm --- old/CGI-4.35/lib/Fh.pm 2016-10-13 15:51:40.000000000 +0200 +++ new/CGI-4.36/lib/Fh.pm 2017-04-06 16:36:44.000000000 +0200 @@ -5,6 +5,6 @@ use strict; use warnings; -$Fh::VERSION = '4.35'; +$Fh::VERSION = '4.36'; 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CGI-4.35/t/command_line.t new/CGI-4.36/t/command_line.t --- old/CGI-4.35/t/command_line.t 1970-01-01 01:00:00.000000000 +0100 +++ new/CGI-4.36/t/command_line.t 2017-04-06 16:32:41.000000000 +0200 @@ -0,0 +1,93 @@ +#!/usr/local/bin/perl +# Test running CGI from the command line (typically used for debugging). + +use strict; +use warnings; + +use File::Temp qw(tempfile); + +use Test::More; +use Test::Deep; + +if ( $^O =~ /^MSWin/i ) { + plan skip_all => "No relevant to Windows"; +} + +# We don't need to import CGI here since it's the perl subprocess that loads it. + +my $loaded = 1; + +$| = 1; + +######################### End of black magic. + +my @cmd_base = ($^X); +push @cmd_base, "-I$_" foreach @INC; +push @cmd_base, '-MCGI', '-e'; + +# Run a string of Perl code using a command line CGI invocation. +# Takes the code and any additional command line arguments. +# Dies if any error or warnings; returns stdout. +# +sub run { + die 'pass code snippet, optional args' if not @_; + my @cmd = (@cmd_base, @_); + my ($stdout_fh, $stdout_filename) = tempfile; + my ($stderr_fh, $stderr_filename) = tempfile; + open my $old_stdout, '>&STDOUT' or die "cannot dup stdout: $!"; + open my $old_stderr, '>&STDERR' or die "cannot dup stderr: $!"; + open STDOUT, '>&', $stdout_fh or die "cannot redirect stdout: $!"; + open STDERR, '>&', $stderr_fh or die "cannot redirect stderr: $!"; + my $r = system(@cmd); + my $system_status = $?; + open STDOUT, '>&', $old_stdout or die "cannot restore stdout: $!"; + open STDERR, '>&', $old_stderr or die "cannot restore stderr: $!"; + close $stdout_fh or die "cannot close $stdout_filename: $!"; + close $stderr_fh or die "cannot close $stderr_filename: $!"; + + if ($r) { + die <<END +failed to run: @cmd +system() status code is $system_status +stdout is in $stdout_filename +stderr is in $stderr_filename +END +; + } + + open my $got_stdout_fh, '<', $stdout_filename or die "cannot read $stdout_filename: $!"; + open my $got_stderr_fh, '<', $stderr_filename or die "cannot read $stderr_filename: $!"; + my $got_stdout = do { local $/; <$got_stdout_fh> }; + my $got_stderr = do { local $/; <$got_stderr_fh> }; + unlink $stdout_filename or die "cannot unlink $stdout_filename: $!"; + unlink $stderr_filename or die "cannot unlink $stderr_filename: $!"; + + if ($got_stderr ne '') { + die <<END +ran, but produced warnings: @cmd +stderr is: +$got_stderr +stdout is: +$got_stdout +END +; + } + + return $got_stdout; + +} + +my $arg = 'game=chess&game=checkers&weather=dull'; + +# First some basic tests of ordinary functionality. +is run('$r = CGI::param("game"); print $r', $arg), 'chess', 'get first param'; +is run('@p = CGI::param(); print scalar @p', $arg), 2, 'number of params'; +is run('@p = CGI::param(); @p = sort @p; print "@p"', $arg), 'game weather', 'names of params'; +is run('print CGI::header()'), "Content-Type: text/html; charset=ISO-8859-1\r\n\r\n", 'header'; +is run('print CGI::h1("hi")'), '<h1>hi</h1>', 'h1'; + +# Test the peculiarities of command line mode - no request method, and for now, no URL parameters. +is run('$r = CGI::request_method(); print defined $r ? 1 : 0'), '0', 'request_method is undef'; +is run('$r = CGI::url_param("game"); print defined $r ? 1 : 0', $arg), '0', 'url_param returns undef'; + +done_testing(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CGI-4.35/t/postdata.t new/CGI-4.36/t/postdata.t --- old/CGI-4.35/t/postdata.t 2016-05-23 09:58:56.000000000 +0200 +++ new/CGI-4.36/t/postdata.t 2017-03-29 10:38:06.000000000 +0200 @@ -7,7 +7,7 @@ ################################################################# use strict; -use Test::More tests => 28; +use Test::More tests => 42; use CGI; $CGI::DEBUG=1; @@ -59,7 +59,7 @@ -for my $pdata ( qw' POST PUT ' ){ +for my $pdata ( qw' POST PUT PATCH' ){ local $ENV{REQUEST_METHOD} = $pdata; my $pdata = $pdata.'DATA'; CGI::initialize_globals(); #### IMPORTANT @@ -74,7 +74,7 @@ ok( "GIF89a\1\0\1\0\x90\0\0\xFF\0\0\0\0\0,\0\0\0\0\1\0\1\0\0\2\2\4\1\0;" eq $q->param( $pdata ), "and the value isn't corrupted" ); } -for my $pdata ( qw' POST PUT ' ){ +for my $pdata ( qw' POST PUT PATCH' ){ local $ENV{REQUEST_METHOD} = $pdata; my $pdata = $pdata.'DATA'; local *STDIN; @@ -98,7 +98,7 @@ } -for my $pdata ( qw' POST PUT ' ){ +for my $pdata ( qw' POST PUT PATCH' ){ local $ENV{REQUEST_METHOD} = $pdata; my $pdata = $pdata.'DATA'; local *STDIN;
