Forum Webscript.Ru

Программирование => Perl => Тема начата: Duke от 27 Ноября 2002, 23:17:12

Название: Perl. Как стереть последние символы в строке?
Отправлено: Duke от 27 Ноября 2002, 23:17:12
Вот задача.

Есть переменная
$a значение которой "and param2>$param2 and param4>$param4"
или
"param2>$param2 and param4>$param4 and"

в первом случае, как стиреть первое слово - "end "
во втором последнее, соответственно? (перед отправкой запроcа в MySQL)

пробовал
s/.../.../
tr/.../.../
но не получилось, плохо я очень в этой скриптологии разбираюсь, а решить задачу надо.
Поможите.:insane:
Название: Perl. Как стереть последние символы в строке?
Отправлено: Stas от 28 Ноября 2002, 00:19:36
vopervyh v php est\' "trim($var,"chars to remove")"
ne znaiu naschet perla.. no chto-to tipa etogo dolzhno byt\' obiazatelno..

Vo vtoryh, ia tebe uzhe otvetil kak etu problemu mozhno po-umnomu oboiti s pomoshiu SQL :

"select [field] from where 1=1 and param2>$param2 and param4>$param4"
Название: Perl. Как стереть последние символы в строке?
Отправлено: Stas от 28 Ноября 2002, 00:20:31
ili esli tol\'ko sleva : ltrim()
a sprava: rtrim()
Название: Perl. Как стереть последние символы в строке?
Отправлено: ThE0ReTiC от 28 Ноября 2002, 00:41:54
->Perl
Название: Perl. Как стереть последние символы в строке?
Отправлено: Stas от 28 Ноября 2002, 01:18:11
a vot kto eto delo v Perl perenes ? chelovek pro SQL sprashival mezhdu prochim ... Tut ne v Perle ili PHP delo
Название: Perl. Как стереть последние символы в строке?
Отправлено: Stas от 28 Ноября 2002, 01:19:48
http://forums.webscript.ru/showthread.php?s=&threadid=9275&msgnum=5
Название: Perl. Как стереть последние символы в строке?
Отправлено: YA от 28 Ноября 2002, 01:22:36
Duke, во-первых, переменную $a лучше не использовать не по назначению, она используется в функции sort.

$aa=\'and param2>$param2 and param4>$param4\'; # или \'param2>$param2 and param4>$param4 and\';
for ($aa) {s/^and//; s/and$//;}

- формально так, но, судя по вопросу (если прикинуться телепатом), ты просто связываешь набор условий для SQL-запроса. Тогда лучше делать по другому:

$a[0]="param2>$param2";
$a[1]="param4>$param4";
$a=join(" AND ",@a);

Stas,
Цитировать
mozhno po-umnomu oboiti s pomoshiu SQL
Заставлять БД делать лишнюю работу как раз не очень умно.
Название: Perl. Как стереть последние символы в строке?
Отправлено: Stas от 28 Ноября 2002, 01:35:47
nu a potvoemu 1=1 eto lishniaia rabota.. S string functions v Perle eto ne lishniaia rabota ? A pamiat\' dlia lishnih peremennyh ? A execution time ?

Seriozno, dlia takoi dovol\'no prostoi veshi, nikakih string functsii ne nado, da i kod koroche budet ! ;)
Название: Perl. Как стереть последние символы в строке?
Отправлено: YA от 28 Ноября 2002, 01:45:29
[OFF]Stas, в SQL-запросе любая мелочь может сделать погоду. И СУБД и Perl надо использовать по назначению. Кстати, если тебе так нравится твой вариант, то хотя бы замени "1=1" на просто "1".[/OFF]
Если у Duke нет вопросов, тема закрыта.
Название: Perl. Как стереть последние символы в строке?
Отправлено: NeoNox от 28 Ноября 2002, 11:22:02
moderator
Stas используй перекодировщики. Благо, в инете их валом. Или ссылку подкинуть?

Тема закрыта.