ETA: На основании ваших комментариев я бы сказал, что вам лучше всего использовать Text :: CSV .Посмотрите на документацию, это очень полезно.По сути, вы бы сделали что-то вроде:
use Text::CSV;
my $csv = Text::CSV->new({
binary => 1,
sep_char => "|",
});
open my $fh, "<", "inputfile" or die $!;
while (my $row = $csv->getline($fh)) {
# @$row now contains your row data
}
Старый ответ
"указатели" не используются в Perl.Я полагаю, вы имеете в виду позицию матча.Есть несколько способов.Вы можете использовать index
, если вам не нужны регулярные выражения:
perl -lwe 'print index("foobar", "bar");'
Если вам нужно регулярное выражение, возможно, для более сложных совпадений, вы можете использовать предопределенную переменную @-
, в которой хранится позиция, где начинается ваш матч:
perl -lwe '$str = "foobar"; if ($str =~ /bar/) { print $-[0] }'
Однако я предлагаю вам рассказать нам, что вы пытаетесь сделать.Использование смещения строк - не лучший инструмент Perl в этом поле, и я подозреваю, что есть гораздо лучшие способы решения вашей проблемы.