Если я запускаю этот скрипт как есть, он работает.
Но почему это не работает с cgi
?
Когда я использую _\01_
вместо _\00_
, он работает и с cgi
.
#!/usr/bin/env perl
use warnings;
use 5.012;
### script_1.cgi #########################################
my @array = ( '1524', '2.18 MB', '09/23/03', '_cool_name_', 'type' );
my $row = join "_\00_", @array;
say $row;
# submit $row to script_2.cgi
### script_2.cgi #########################################
# ...
# my $row = $cgi->param('row');
# my $name;
if ( $row =~ /_\00_([^\00]+)_\00_type\z/ ) {
# $name = $1;
say "Name: <$1>";
} else {
die "<$row> $!";
}
# Software error:
# <1524_�_2.18 MB_�_09/23/03_�__cool_name__�_type> at script_2.cgi line of "die "<$row> $!";"