Forum Webscript.Ru
		Программирование => Perl => Тема начата: frenky от 22 Июня 2004, 21:20:40
		
			
			- 
				Если я через textarea  передаю сообщение как мне из него поубирать переводы на новую строчку?
			
- 
				man Регулярные выражения
 perldoc perlre
 
 $text =~s /\\n//g;
- 
				Phoinix неа...
 perldoc -f chomp
- 
				thanks
			
- 
				NeoNox 
 
 из perldoc
 It\'s often used to remove the newline from the end of an input record
 
 
 а там textarea -> много строк, много символов новой строки, а не только в конце. chomp не катит
- 
				Phoinix 
 $text =~s/\\n?\\r//g;
- 
				Green Kakadu нужно смотреть код и что он с ним дальше делает.
 Если построчно обрабатывает то chomp:
 
 Benchmark: timing 6 iterations of CHOMP, RegEx...
 CHOMP:  0 wallclock secs ( 0.01 usr +  0.00 sys =  0.01 CPU) @ 600.00/s (n=6)
 RegEx:  0 wallclock secs ( 0.02 usr +  0.00 sys =  0.02 CPU) @ 300.00/s (n=6)
 
 Rate RegEx CHOMP
 RegEx 300/s    --  -50%
 CHOMP 600/s  100%    --
- 
				2 commander 
 тогда уж $text =~s/[\\n\\r]//g;
 
 NeoNox
 согласен, насчет быстродействия не поспоришь, но сложно представить, чтоб ввод из  textarea ;) разбирался построчно.
- 
				NeoNox 
 Сомневаюсь, что данные переданные из TEXTAREA обрабатываются построчно, т.к. они передаются как скаляр, если только эти данные не перевести в массив:
 
 my @text = sprit(/\\n/,$text);
 
 но тогда отпадает смысл chomp... ;)
 
 commander
 [OFF]Да пропустил, не спорю... ;)[/OFF]
- 
				поправлю раз уже нашел :)
 @text = split(/\\n/,$text);
- 
				Как вариант:
 $textarea=~s/\\n/
 /g;
 Так сохраняться переводы строк, если в дальнейшем потребуется использовать оригинальное форматирование для вывода в html.