У меня есть файл, который имеетPerl Ошибка: Глобальный символ требует четкого определения имени пакета
#File content
word1 -> word2
word3 -> word4
и мне нужно поставить это в 2-х разных массивах, как
@array1 = word1, word3
@array2 = word2, word4
Мой код ниже
my @mappings = `cat $file_name`;
foreach my $map (@mappings) {
$map =~ s/^\s+|\s+$//g; #Remove leading and trailing spaces
next if ($map =~ /^#/);
my @Mainarray = split ('->',$map);
my @array1 = push(@array1,@Mainarray[0]); **#Error line**
my @array2 = push(@array2,@Mainarray[1]); **#Error line**
print("Array1: @array1\nArray2:@array2\n");
}
Я получаю эту ошибку:
Global symbol "@array1" requires explicit package name.
Global symbol "@array2" requires explicit package name.
Может кто-то, пожалуйста, помогите мне с этим.
возможно дубликат [Global символ требует явного имя пакета] (http://stackoverflow.com/questions/3141412/global-symbol-requires-explicit-package-name) – Cfreak
Добро пожаловать в Stack Overflow , Вскоре прочитайте страницу [О программе]. Предоставьте полный код; вы почти наверняка используете 'use strict;' и 'use warnings', которые вы не показываете. Вы также не показываете номера строк, которые Perl генерирует с сообщением об ошибке. Прочтите, как сделать SSCCE ([Short, Self-Contained, Correct Example] (http://sscce.org/)). –
Я использую строго в своем коде. Весь код составляет почти 500-600 строк. Поэтому я не смогу его вставить. Я просто обновил строки ошибок в коде выше, написав небольшой комментарий рядом с ним. – Rancho