---
title: 编译Greenplum 5.11.3过程中，由于Perl版本过高导致编译安装出错的解决方法
description: "编译Greenplum过程中，由于Perl版本过高导致编译安装出错，提示“Assigning non-zero to $[ is no longer possible at /parse.pl line 21”。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdbs/ecosystemEnable/Greenplum/kunpenggreenplum_02_0018.html
sourcePath: /source/zh/kunpengdbs/ecosystemEnable/Greenplum/kunpenggreenplum_02_0018.html
indexId: 69023e052eefc0f44f4b2dc9579a95b4e81ddd951ce2a6fe063790b1fd44cb4477
---
# 编译Greenplum 5.11.3过程中，由于Perl版本过高导致编译安装出错的解决方法

#### 问题现象描述

编译Greenplum过程中，由于Perl版本过高导致编译安装出错，提示“Assigning non-zero to $[ is no longer possible at /parse.pl line 21”。

```
make[5]:Nothing to be done for 'all'.
make[5]: Leaving directory '/disk/5113/gpdb-5.11.3/src/port'
"/usr/bin/perl" ./parse.pl  .< ../../../../src/backend/parser/gram.y > preproc.y
Assigning non-zero to $[ is no longer possible at /parse.pl line 21.
[Makefile:64: preproc.y] Error 255
```

完整提示信息如下图所示。


#### 关键过程、根本原因分析

openEuler 22.03中，Perl版本过高，已不支持对“$[”赋不等于0的值，导致出现此问题。


#### 结论、解决方案及效果

1. 下载Perl 5.10.0压缩包(https://github.com/Perl/perl5/tree/perl-5.10.0)。
2. 解压Perl 5.10.0压缩包。
  1 unzip perl5-perl-5.10.0.zip

3. 进入Perl目录，并执行编译安装。
  1 2 3 4 cd perl5-5.10.0 ./Configure -des -Dprefix=/usr/local/perl make -j make install

4. 将系统默认的Perl版本更改为在“/usr/local/perl/bin/perl”中的版本。
  1 2 mv /usr/bin/perl /usr/bin/perl.old ln -s /usr/local/perl/bin/perl /usr/bin/perl

5. 查看Perl版本，确认已经成功升级至Perl 5.10.0。
  1 perl -v

6. 重新编译Greenplum。
