У меня есть некоторые данные, как например:Perl Regular Expression Pattern
TYPE: Travel
ADDRESS
Barcelona
Paris
Таким образом, адрес может быть 1 или много (мне нужно сбросить адрес и получить только те города). По какой-то причине мой синтаксический анализ завершился неудачей (напечатан только «АДРЕС») для получения правильного результата. Я что-то пропустил?
elsif (/^ADDRESS/) {
my @address_t = split /[no matter what i put,only ADDRESS is printed]+/, $_;
shift @address_t; #is this how i will discard ADDRESS ?
foreach my $address (@address_t) {
@address_names = ($address);
}
Я думаю, что регулярное выражение должно быть разделено на новую строку, пробел?
Это, как я обработан ТИП:
elsif (/^TYPE/) {
my @type_t = split '\s', $_;
$type = $type_tmp[1];
print "$type" ; #to test, but i have a hashmap which i load them in and print at the end of the file.
Благодарности
есть петля вокруг, если/ELSIF ? У вас есть все данные в памяти или только одна строка? – perreal
У меня есть оператор печати внутри цикла foreach, который я использовал для тестирования, просто пропущенного в этом сообщении. Обычно я загружаю данные в хэш. Но я еще не получил этого, так как простой оператор печати не дает мне то, что я хочу. Цикл дает ADDRESS (столько раз, сколько он есть в текстовом файле) –