2015-04-12 3 views
4

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

my $linenum= .... $str .... 

Он должен работать, когда строка пуста, одна строка и несколько строк.

+1

Два Perl функции, которые вы хотите посмотреть в являются ' split() ', который разбивает строку на список и' scalar() ', которые при задании списка возвращают длину списка. –

+0

@DovGrobgeld вы имеете в виду 'scalar (split ($ str))'? он не работал – dibonao

+0

Проверьте документацию для 'split()', например. по 'perldoc -f split'. 'split()' принимает два параметра. Первый - это шаблон (который может быть строкой), используемый для разделения, и строка для разделения. Например. Разбиваться ('\ п', $ строка). –

ответ

-3

Попробуйте использовать регулярное выражение

+0

Я новичок в perl. любое предлагаемое регулярное выражение? – dibonao

+1

my $ count =() = $ str = ~/\ n/g; – rplantiko

7

Вы можете рассчитывать количество новых строки символов \n в строке (или \r для Mac новой строки)

my $linenum = $str =~ tr/\n//; 
+0

Вы должны добавить '$ number_of_lines ++;', чтобы добавить 1 к результату, потому что подсчет только нового символа строки '\ n' пропускает последнюю строку. – Omar

+1

Это зависит от того, заканчивается ли последняя строка '\ n'. '$ linenum ++, если $ str! ~/\ n \ z /' –

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