Я давно пользуюсь Perl, но меня беспокоит одна проблема с синтаксисом.
В некоторых пакетах метод может возвращать массив. Например
$root->getlist();
Вернет массив. Теперь я хочу получить первый элемент результата. Конечно, я могу сделать это:
my @results = $root->getlist();
if($results[0] =~ /wow/) {
print "Qualified result";
}
Однако это очень хлопотно. Есть ли способ, которым я могу объединить первую строку со второй строкой? Я попробовал это, но не получилось.
if(${$root->getlist()}[0] =~ /wow/) {
print "Qualified result";
}
Есть ли способ сделать это быстро?
Лучший пример:
Рассмотрим следующий пакет:
package Try;
sub new {
my $package = shift;
return bless({}, $package);
}
sub getList {
return (1,2,3,4,5);
}
1;
Теперь у меня есть пользовательский файл, подобный этому:
use lib '.';
use Try;
use strict;
my $obj = Try->new();
print ($obj->getList())[0];
Попытка запустить этот скрипт приведет к:
синтаксическая ошибка в строке 6 perlarrayaccess.pl, рядом с ") ["
Выполнение perlarrayaccess.pl прервано из-за ошибок компиляции.