2016-01-13 4 views
-3

Это мой кодКак установить начальную и конечную границу в Perl

use strict; 
    use warnings; 
    my $string=" The UNIX grep filters the lines of a file based on a regular expression.Perl's grep can filter any list of value based on any condition. This Perl code implements a basic version of the UNIX grep: "; 
    $string =~ m/grep/; 
    print "$& $'\n"; 

Это мой выход:

Grep может фильтровать список значения, основываясь на каких-либо условий. Этого Perl код реализует базовую версию Grep UNIX:

Но я хочу Выход

Grep может фильтровать список значения, основываясь на каких-либо условиях. Этот код на Perl

Может ли кто-нибудь мне помочь?

+0

'печать ((сплит/(= Grep) /, $ строка) [1], "\ п"?)' – Borodin

+0

Спасибо за ответ, но я меняю как print ((split/(? = filters) /, $ string) [1], "\ n"); Output [фильтрует строки файла на основе регулярного выражения. Grep grep может фильтровать любой список значений на основе любого условия. Этот код Perl реализует базовую версию UNIX grep:] Он не может установить граничное значение конца .I хочу печатать до [код], что я делаю – Chella

+0

Ah okay. Вы хотите 'print $ string = ~ /(filters.*?code)/," \ n "' – Borodin

ответ

0

попробуйте следующий код:

$string =~ m/\..*?(grep.*?code)/; 
print "$1\n"; 
+0

Спасибо за ваш ответ. Когда я использую этот код, возникает следующая ошибка. [Использование неинициализированного значения $ 1 в конкатенации (.) Или строка на str.pl строке 13.] – Chella

+0

Можете ли вы поделиться полным блоком кода, чтобы было легче определить поскольку решение, которое я предоставляю, отлично работает для меня. –