Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   [Perl] Извлечение текста (https://forum.antichat.xyz/showthread.php?t=194225)

apofis 07.04.2010 13:49

[Perl] Извлечение текста
 
Приветсвую!

Хочу спросить, можно ли как-нибудь извлечь текст?

Например, как можно извлечь стих, отсюда?

ASPuskin У лукоморья дуб зеленый;
Златая цепь на дубе том:
И днем и ночью кот ученый
Все ходит по цепи кругом;
Идет направо - песнь заводит,
Налево - сказку говорит. end

Т.е. нужно извлечь текст от "ASPuskin " до " end".

krypt3r 07.04.2010 13:55

Регуляркой
Код:

$text =~ /ASPuskin (.+?) end/smi;

apofis 07.04.2010 18:52

Ок, спасибо!

apofis 09.04.2010 14:30

Есть еще один вопрос. Как можно извлечь этот же текст из файла, который, например называется stih.txt и находится в одной папке со скриптом?

krypt3r 09.04.2010 14:54

Код:

#!/usr/bin/perl

use strict;
use warnings;
use utf8;
use open qw /:std :utf8/;

$\ = "\n";
die "wrong param count" unless scalar @ARGV == 1;
open my $F, '<', $ARGV[0] or die "open() error: $!";
my $text;
$text .= $_ while <$F>;
close $F;
my ($stih) = $text =~ /ASPuskin (.+?) end/smi;
print $stih;

Имя файла передается скрипту как параметр

apofis 09.04.2010 16:36

Не совсем понятен этот код.
Ладно, задам другой вопрос:

Как можно сделать чтобы переменная была равна массиву? Я например открываю файл, т.е. @stih - это содержимое текстового файла.

Нужно сделать, чтобы $text = @stih, т.е. чтобы $text тоже содержал весь стих, чтобы потом из него потом уже извлечь то что нужно.

Kaimi 09.04.2010 19:18

Ну напиши $text = join "\n", @stih;
Или читай содержимое файла по-другому...


Время: 02:50