2010-03-08 2 views
1

Возможно ли, так или иначе, в скрипте Perl эффективно выполнить grep для переменной Perl? Эквивалентная функция Perl была бы одинаково приемлема, я просто хочу, чтобы решение было максимально простым.Может ли grep использоваться для переменной Perl?

Например:

#!/usr/bin/perl 
#!/bin/grep 

$var="foobar"; 

$newvar="system('grep -o "foo" $var'); 

sprintf $newvar; 

Где я ожидаю sprintf $newvar к выходу foo.

Также приветствуем любые отзывы о лучшей практике здесь. Я не очень знаком с Perl.

+1

Я не могу рекомендовать книгу Learning Perl достаточно. Это хорошо написано и отлично справляется с основами. Взгляните сюда: http://books.google.com/books?id=4pINCzVk9NMC&lpg=PP1&dq=Learning%20Perl&client=firefox-a&pg=PP1#v=onepage&q=&f=false – daotoad

ответ

5

Вы можете просто использовать регулярное выражение в Perl. Нет необходимости вызывать внешнюю команду «grep».

$var =~ /foo/; 

пожалуйста, прочитайте документацию perlrequick для введения о том, как искать закономерности в переменных. Также интересен Perl's grep.

$var="foobar"; 
if ($var =~ /foo/){ 
    print "found foo\n"; 
} 
+0

Как и в примере, текст, который я хотите, чтобы «grep» уже содержался внутри переменной. Так будет ли ваше предложение «$ newvar = $ var = ~/foo /;» или я не понимаю? Кроме того, нет особой причины, по которой я хотел использовать grep, кроме того, что я уже знаком с ним. – Structure

+0

'$ newvar' будет содержать возвращаемое значение поиска, если найдено' foo'. – ghostdog74

+0

Фантастический, спасибо. Я знаю достаточно, чтобы быть опасным, но недостаточно, чтобы знать, что я ищу. :) Я могу выполнить то, что я ищу сейчас. – Structure

Смежные вопросы